Kann ein Windows-DLL einen eigenen Dateinamen abrufen?

stimmen
26

Ein Windows - EXE - Datei hat Zugriff auf die Befehlskette , die sie aufgerufen, einschließlich der Pfad und Dateiname. z.B. C:\MyApp\MyApp.exe --help.

Aber das ist nicht so für eine DLL über aufgerufen LoadLibrary. Kennt jemand eine Möglichkeit für eine DLL , um herauszufinden , was der Pfad und Dateiname ist?

Ich bin speziell interessiert in einer Delphi-Lösung, aber ich vermute, dass die Antwort ziemlich das gleiche für jede Sprache sein würde.

Veröffentlicht am 05/08/2008 um 10:34
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
35

Ich glaube, Sie suchen GetModuleFileName.

http://www.swissdelphicenter.ch/torry/showcode.php?id=143 :

{
  If you are working on a DLL and are interested in the filename of the
  DLL rather than the filename of the application, then you can use this function:
}

function GetModuleName: string;
var
  szFileName: array[0..MAX_PATH] of Char;
begin
  FillChar(szFileName, SizeOf(szFileName), #0);
  GetModuleFileName(hInstance, szFileName, MAX_PATH);
  Result := szFileName;
end;

obwohl ungetestet, seit einiger Zeit, die ich mit Delphi gearbeitet :)

Beantwortet am 05/08/2008 um 10:37
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more