![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Имя модуля, загрузившего DLL [D7, Win2k, WinXP]
Molchanov © (2005-01-06 12:47:00)Может ли DLL, загруженная LoadLibrary, узнать имя либо hinstance модуля (exe либо dll), ее загрузившего, и, если да, то как?
Fin (2005-01-06 16:57:00) [1]Опечатка. Вместо (Я думаю что Игорь Шевченко [4] ), следует читать (Я думаю что Игорь Шевченко
[5])
Fin (2005-01-06 16:55:00) [2]Я думаю что Игорь Шевченко
[4]имел ввиду передовать имя как параметр, и не важно что вызов произошол из другой DLL, ведь в этой первой DLL узнать имя exe-ка не проблемма, тем более из самого exe-ка,и короче последовательно передовать имя EXE-ка от одной DLL к другой в качестве параметра.
Molchanov (2005-01-06 16:38:00) [3]Игорь Шевченко (06.01.05 16:05) [5]
EXEшник для программы-DLL - оболочка
Игорь Шевченко (2005-01-06 16:05:00) [4]Molchanov (06.01.05 15:49) [4]
Я бы передавал имя EXEшника.
Molchanov (2005-01-06 15:49:00) [5]Особой необходимости нет.
Есть измерительное оборудование, которое взаимодействует с программной оболочкой (EXE). Управляющие оборудованием программы могут быть оформлены и как EXE, и как DLL. Связь с оболочкой в любом случае осуществляется через специальную DLL. При загрузке программы происходит handshake в процессе которого DLL связи передает оболочке среди прочей информации имя файла управляющей программы. Если программа - DLL, то оно и так известно, просто хотелось использовать единый механизм.
Игорь Шевченко (2005-01-06 15:28:00) [6]Molchanov (06.01.05 14:53) [2]
> Если моя DLL была загружена другой DLL, можно ли узнать
> имя загрузившей?
Просто - нельзя. А смысл такого узнавания ?
Molchanov (2005-01-06 14:53:00) [7]> GetModuleFileName(0, ...)
Этим способом можно узнать имя exe-файла.
Если моя DLL была загружена другой DLL, можно ли узнать имя загрузившей?
Игорь Шевченко (2005-01-06 14:10:00) [8]GetModuleFileName(0, ...)