![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DllEntryPoint
volser © (2003-11-05 00:22:00)
Что это за функция DllEntryPoint и как она выглядит в Delphi или как узнать handle dll"ки
alex_*** (2003-11-05 09:15:00) [1]
есть глоб. переменная DllProc внутри DLL. В секции инициализации в нее можно приписать адрес функции типа DllEntryPoint.
Вася Пупкин (2003-11-05 02:46:00) [2]
В Win32 определена специальная функция обратного вызова (Callback-function)системного уровня с именем, которое может задаваться пользователем (это пользовательская функция, вызываемая системой). Как правило, на нее ссылаются как
на DllEntryPoint. Но DllEntryPoint может иметь практически любое имя; иногда это DllMain.
В Delphi часть задач вместо DllEntryPoint может взять на себя код инициализации.
Когда вызывается функция Win API LoadLibrary(), модуль DLL загружается в память.Затем вызываетяс код инициализации библиотеки. Система проверяет, экспортирует ли программист в модуле функцию DllEntryPoint и задал ли он ее имя при помощи
компоновщика. Если имело место и то, и другое, система вызывает функцию DllEntryPoint. Прототип этой функции на языке С:
BOOL WINAPI DllEntryPoint(
HINSTANCE hinstDLL,
DWORD fdwReason,
LPVOID lpvReserved);
Параметр fdwReason:DWORD содержит значение, соответствующее причине, по которой была вызвана функция DllEntryPoint. Система вызывает DllEntryPoint в четырех случаях; соответственно, fdwReason может иметь одно из четырех значений
DLL_PROCESS_ATTACH Процесс отображает DLL в своё адресное пространство
DLL_PROCESS_DETACH Процесс прекращает отображение DLL в своё адресное пространство
DLL_THREAD_ATTACH Создается поток в адресном пространстве процесса, отобразившего DLL
DLL_THREAD_DETACH Поток, находившийся в том же адресном пространстве, куда отображена DLL, удаляется
Вася Пупкин (2003-11-05 02:39:00) [3]
>Что это за функция DllEntryPoint и как она выглядит в Delphi
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1067682471
Вася Пупкин (2003-11-05 02:18:00) [4]
>как узнать handle dll"ки
GetModuLeHandle