From within a BPL, is it possible to get its own file name? e.g. C:\foo\bar.bpl
(dynamically loaded and delphi7, if it matters)
From within a BPL, is it possible to get its own file name? e.g. C:\foo\bar.bpl
(dynamically loaded and delphi7, if it matters)
Call GetModuleFileName
. For the module handle, use SysInit.HInstance
. Passing zero will give you the host EXE's file name instead, also known as ParamStr(0)
.
Example use of GetModuleFileName:
function DLLFileName : string;
begin
SetLength(Result,MAX_PATH);
GetModuleFileName(HInstance,PCHar(Result),MAX_PATH);
SetLength(Result,StrLen(PChar(Result)));
end;