Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Pfad Host Anwendung DLL (https://www.delphipraxis.net/212439-pfad-host-anwendung-dll.html)

calibra301 10. Feb 2023 07:49

Pfad Host Anwendung DLL
 
Hallo,

ich progge eine DLL in Delphi.
Ausgabeverzeichnis ist mit "..\Bin32\TEST" angegeben.
Als Hostanwendung habe ich "..\Bin32\TEST\Host.exe".
Funktioniert soweit..

Dann kam das 64 Bit Elend..
Ausgabe nach "..\Bin64\TEST" angegeben. Da liegt die 64Bit Host Anwendung und die DLL
kommt da auch an.
Als Hostanwendung für 64Bit Debug habe ich "..\Bin64\TEST\Host.exe" eingetragen.
Dann kommt ein "Host Anwendung nicht gefunden." Gebe ich da den absoluten Pfad an
dann gehts...

Keinen Plan was ich da falsch mache... :-(

jaenicke 10. Feb 2023 08:09

AW: Pfad Host Anwendung DLL
 
Mit dem Process Monitor kannst du sehen, wo die bds.exe die Hostanwendung sucht. (Im Filter Process Name is bds.exe und Path contains Host.exe eintragen.)

himitsu 10. Feb 2023 10:18

AW: Pfad Host Anwendung DLL
 
Bei 32 Bit macht es standardmäßig der Debugger innerhalb des IDE-Prozesses.
Für 64 Bit muß der RemoteDebugger benutzt werden (macht die IDE hier von selbst), aber der ist ein eigenständiger Prozess, wo relative Pfade womöglich einen anderen Ursprung/Arbeitsverzeichnis haben.

Probier mal, ob du an der Stelle $(PROJECTDIR)\xxx , $(PROJECTPATH)xxx , $(OUTPUTDIR)\xxx oder $(OUTPUTPATH)xxx als Pfad verwenden kannst.



Nicht nur die Host-Anwendung angeben, sondern auch das Arbeitsverzeichnis besser nicht vergessen.

calibra301 10. Feb 2023 10:28

AW: Pfad Host Anwendung DLL
 
Hallo,

der Prozessmonitor findet mein Test.exe nicht.

$(PROJECTDIR) und Co werden leider auch nicht übersetzt.
Tauchen dann mit dem Text in der Fehlermeldung auf das die Host-Anwendung nicht
gefunden wurde.

calibra301 10. Feb 2023 10:52

AW: Pfad Host Anwendung DLL
 
Hallo,

lt. Google gehen an der Stelle nur Verweise auf Umgebungsvariablen

{BIN64}\Test.exe

himitsu 10. Feb 2023 11:20

AW: Pfad Host Anwendung DLL
 
In der IDE kann man auch eigene Umgebungsvariablen hinzufügen, aber ich fürchte der RemoteDebugger benutzt diese nicht.

jaenicke 10. Feb 2023 11:48

AW: Pfad Host Anwendung DLL
 
Ich habe es kurz ausprobiert (mit Delphi 10.4 Community). Die Logik, nach der Variablen ausgewertet werden, ist wirklich sehr verwirrend. Deine Eingaben funktionieren mit Delphi 10.4 aber.

Nun zur Verwirrung:
Es macht einen Unterschied, ob man das aktuelle Arbeitsverzeichnis (.\...), ein relatives Verzeichnis (..\...) oder ein absolutes Verzeichnis (c:\...) als Hostangabe verwendet. Je nachdem, was man da angibt, werden Variablen ausgewertet oder nicht und teilweise auch falsch ausgewertet. Ich verstehe es nicht. Mal wird aus $(Platform)\$(Config) dann %Platform%\%Config%, mal korrekt Win64\Debug, mal wird als Basis das Ausgabeverzeichnis verwendet, mal das der Projektdatei.
Das ist wirklich absolut unlogisch und undurchschaubar, auch in 10.4.

Zitat:

Zitat von calibra301 (Beitrag 1518518)
der Prozessmonitor findet mein Test.exe nicht.

Ja, ich habe den Filter falsch genannt. :oops: Bei 64-Bit wird ja ein externer Debugger verwendet und nicht direkt die bds.exe. Filtere daher nur auf Path, nicht auf Process Name.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz