delphi - Une DLL Windows peut-elle récupérer son propre nom de fichier?

Translate

Un fichier exe Windows a accès à la chaîne de commande qui l'a appelé, y compris son chemin et son nom de fichier. par exemple.C:\MyApp\MyApp.exe --help.

Mais ce n'est pas le cas pour une dll invoquée viaLoadLibrary. Quelqu'un connaît-il un moyen pour une dll de découvrir son chemin et son nom de fichier?

Plus précisément, je suis intéressé par une solution Delphi, mais je soupçonne que la réponse serait à peu près la même pour n'importe quelle langue.

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

Je pense que vous recherchez 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;

Non testé cependant, cela fait longtemps que je n'ai pas travaillé avec Delphi :)

La source