Czy DLL odzyskać swoją własną nazwę pliku?

głosy
26

Exe plik Windows ma dostęp do łańcucha dowodzenia, który go wywołał, w tym jego ścieżkę i nazwę pliku. na przykład. C:\MyApp\MyApp.exe --help,

Ale to nie jest tak do dll wywoływana przez LoadLibrary. Czy ktoś zna sposób na dll aby dowiedzieć się, jaki jest jego ścieżka i nazwa pliku jest?

W szczególności jestem zainteresowany w roztworze Delphi, ale podejrzewam, że odpowiedź będzie praktycznie taka sama dla każdego języka.

Utwórz 05/08/2008 o 10:34
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
35

Myślę, że szukasz 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;

Niesprawdzone choć już trochę czasu, odkąd pracowałem z Delphi :)

Odpowiedział 05/08/2008 o 10:37
źródło użytkownik

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