Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Pfad+Name der aktuellen DLL aus DLL heraus ermitteln... (https://www.delphipraxis.net/51231-pfad-name-der-aktuellen-dll-aus-dll-heraus-ermitteln.html)

FriFra 8. Aug 2005 20:54


Pfad+Name der aktuellen DLL aus DLL heraus ermitteln...
 
Ich hab ein kleines Problem...
Meine DLL wird von einem fremden Programm dynamisch gebunden und eine Funtion daraus aufgerufen. Nun habe ich das Problem, dass ich gern die Versionsnummer meiner DLL auslesen würde, aber ich weiß eben nicht, wo sich die DLL genau befindet :roll: , wie bekomme ich nun den genauen Pfad + Dateinamen (ja die dll könnte auch umbenannt worden sein) heraus?

Luckie 8. Aug 2005 21:01

Re: Pfad+Name der aktuellen DLL aus DLL heraus ermitteln...
 
MSDN-Library durchsuchenGetModuleFilename mit HInstance als ersten Parameter.

SirThornberry 8. Aug 2005 21:14

Re: Pfad+Name der aktuellen DLL aus DLL heraus ermitteln...
 
oder gleich GetModuleName welches auf die gepostete funktion aufbaut.

Olli 8. Aug 2005 21:29

Re: Pfad+Name der aktuellen DLL aus DLL heraus ermitteln...
 
Aua aua aua ... da haben wohl zwei nicht gelesen.
Ich poste die Lösung gleich. Hatte ich schonmal hier in der Sparte gepostet. Moment!

SirThornberry 8. Aug 2005 21:30

Re: Pfad+Name der aktuellen DLL aus DLL heraus ermitteln...
 
warum nicht gelesen? den genauen Pfad der DLL (inklusive Dateinamen) bekommt man so. Und wie er die Versionsnummer ausliest weiß er doch.

Olli 8. Aug 2005 21:33

Re: Pfad+Name der aktuellen DLL aus DLL heraus ermitteln...
 
Was wenn er kein hInstance hat? Hast du die Lösung dann? :mrgreen:

Voila, das hatte ich doch schonmal unter anderem Namen (Mephistopheles) beantwortet:
Dateinamen einer DLL ermitteln
Zitat:

Zitat von Ich
Ganz einfach: Man ermittelt die MEMORY_BASIC_INFORMATION einer Variablen in der DLL mit VirtualQuery() und hat mit MEMORY_BASIC_INFORMATION.AllocationBase das Instanzenhandle.


SirThornberry 8. Aug 2005 21:35

Re: Pfad+Name der aktuellen DLL aus DLL heraus ermitteln...
 
in der DLL ist doch HInstance immer global vorhanden :wink:
er will ja innerhalb der DLL von eben dieser den Dateinamen und somit ist auch die HInstance bekannt.

NicoDE 8. Aug 2005 21:36

Re: Pfad+Name der aktuellen DLL aus DLL heraus ermitteln...
 
Zitat:

Zitat von Olli
Was wenn er kein hInstance hat? Hast du die Lösung dann? :mrgreen:

Ich gehe davon aus, dass er (wie 99,999999%) die Standard-Delphi-RTL benutzt :)

Olli 8. Aug 2005 21:36

Re: Pfad+Name der aktuellen DLL aus DLL heraus ermitteln...
 
Zitat:

Zitat von SirThornberry
in der DLL ist doch HInstance immer global vorhanden :wink:

Wenn, und nur wenn, du die Standardunits verwendest. Eine Standardlösung ist und kann dies jedoch nicht sein.

FriFra 8. Aug 2005 21:36

Re: Pfad+Name der aktuellen DLL aus DLL heraus ermitteln...
 
Danke, jetzt hab ich's
Delphi-Quellcode:
var
...
  DllName: array[0..MAX_PATH-1] of char;
begin
GetModuleFileName(hInstance, DllName, sizeof(DllName)-1);
...


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:21 Uhr.
Seite 1 von 2  1 2      

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