![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить путь Dll [D6, Win2k]
sniknik © (2002-04-01 10:49:00)Для exe-файла понятно можно через Application или ParamStr(0), а если нужен путь до dll? ParamStr(0) дает путь к вызвавшему его процессу (exe) или я ошибаюсь?
paul_shmakov (2002-04-01 14:23:00) [1]только учтите, что под hInstance имеется ввиду типHINSTANCE (он же HMODULE), а не глобальная переменнаяhInstance в delphi-приложении.
borland неудачно эту переменную назвал, т.к. в win32 sdk есть такой тип HINSTANCE. а у borland-а это переменная, а тип они переименовали в HINST.
т.е. нужно передать в GetModuleFileName переменную типа HINST, полученную ранее с помощью LoadLibrary или GetModuleHandle (если GetModuleFileName вызывается из приложения), или сохраненную ранее в функции DllMain (если функция GetModuleFileName вызывается из самой этой dll).
sniknik (2002-04-01 12:47:00) [2]ясно. еще раз спасибо.
paul_shmakov (2002-04-01 12:45:00) [3]GetModuleFileName получает hInstance не вызывающего процесса, а самой dll.
sniknik (2002-04-01 12:39:00) [4]Рано обрадовался. А как hInstance вызывающего процесса получить?
sniknik (2002-04-01 12:16:00) [5]Спасибо! Щас запробуем.
watcher (2002-04-01 11:28:00) [6]var
s: string;
begin
SetLength(s, 100);
GetModuleFileName(hInstance, s, 100);
...