A partir d'un BPL, est-il possible d'obtenir son propre nom de fichier? par exemple. C: \ foo \ bar.bplObtenir le nom de fichier BPL
(dynamiquement chargé et Delphi7, si elle importe)
A partir d'un BPL, est-il possible d'obtenir son propre nom de fichier? par exemple. C: \ foo \ bar.bplObtenir le nom de fichier BPL
(dynamiquement chargé et Delphi7, si elle importe)
Appel GetModuleFileName
. Pour le handle de module, utilisez SysInit.HInstance
. Passer à zéro vous donnera le nom de fichier de l'hôte EXE à la place, également connu sous le nom ParamStr(0)
.
utilisation de l'exemple de GetModuleFileName:
function DLLFileName : string;
begin
SetLength(Result,MAX_PATH);
GetModuleFileName(HInstance,PCHar(Result),MAX_PATH);
SetLength(Result,StrLen(PChar(Result)));
end;
Les deux dernières lignes peuvent être repliés en un seul, comme 'GetModuleFileName()' renvoie le nombre de caractères copiés, de sorte que le 'StrLen() 'n'est pas nécessaire. – mghie
C'est encore plus facile: Résultat: = PChar (résultat); – dummzeuch
@dummzeuch: Ça a l'air plus facile, oui. Appelle l'équivalent de 'StrLen()' de façon interne de toute façon. Pour ceux qui recherchent le code le plus petit et le plus rapide ... – mghie
Thankyou, fonctionne comme prévu :) –