2009-10-28 8 views

Répondre

8

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).

+0

Thankyou, fonctionne comme prévu :) –

1

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; 
+0

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

+0

C'est encore plus facile: Résultat: = PChar (résultat); – dummzeuch

+0

@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

Questions connexes