2009-10-28 5 views

ответ

8

Вызов GetModuleFileName. Для ручки модуля используйте SysInit.HInstance. При переходе к нулевому значению вам будет присвоено имя файла хоста EXE, также известное как ParamStr(0).

+0

Thankyou, работает как ожидалось :) –

1

Пример использования GetModuleFileName:

function DLLFileName : string; 
begin 
    SetLength(Result,MAX_PATH); 
    GetModuleFileName(HInstance,PCHar(Result),MAX_PATH); 
    SetLength(Result,StrLen(PChar(Result))); 
end; 
+0

Последние две линии могут быть сложены в одну, как 'GetModuleFileName()' возвращает количество символов, скопированных, так что 'StrLen() 'не требуется. – mghie

+0

Это еще проще: Результат: = PChar (Результат); – dummzeuch

+0

@ dummzeuch: Выглядит легче, да. В любом случае вызывается эквивалент 'StrLen()' внутренне. Для тех, кто жаждет самого маленького и быстрого кода ... – mghie

Смежные вопросы