Из BPL можно получить собственное имя файла? например C: \ Foo \ bar.bplПолучить имя файла BPL
(динамически загружены и Delphi7, если это имеет значение)
Из BPL можно получить собственное имя файла? например C: \ Foo \ bar.bplПолучить имя файла BPL
(динамически загружены и Delphi7, если это имеет значение)
Вызов GetModuleFileName
. Для ручки модуля используйте SysInit.HInstance
. При переходе к нулевому значению вам будет присвоено имя файла хоста EXE, также известное как ParamStr(0)
.
Пример использования GetModuleFileName:
function DLLFileName : string;
begin
SetLength(Result,MAX_PATH);
GetModuleFileName(HInstance,PCHar(Result),MAX_PATH);
SetLength(Result,StrLen(PChar(Result)));
end;
Последние две линии могут быть сложены в одну, как 'GetModuleFileName()' возвращает количество символов, скопированных, так что 'StrLen() 'не требуется. – mghie
Это еще проще: Результат: = PChar (Результат); – dummzeuch
@ dummzeuch: Выглядит легче, да. В любом случае вызывается эквивалент 'StrLen()' внутренне. Для тех, кто жаждет самого маленького и быстрого кода ... – mghie
Thankyou, работает как ожидалось :) –