Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить путь 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);
...


Наверх

Титульная страница Поиск, карта сайта Написать письмо