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

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

DLL_PROCESS_DETACH / DLL_PROCESS_ATTACH [D5, WinME]


AlexandrR ©   (2002-09-04 22:51:00) 

Привет всем!
У меня проблема.
Переопределяю я DLLProc и пытаюсь ловить subj. И вроде делаю стандартно, но все-таки ничего не ловится. DllEntryPoint вызывается, но со значениями где-то ~1000-2000.
Вот кусок кода:
procedure DLLEntryPoint(dwReason: Integer); stdcall;
var hThread:THandle;
thrID:Cardinal;

begin
case dwReason of
DLL_PROCESS_ATTACH: Begin // On load
DLL_PROCESS_DETACH: Begin// On UnLoad
End;
end;
end;

/////////////////////////////////////////////////////////////////

begin
DLLProc:= @DLLEntryPoint;
DLLEntryPoint(DLL_PROCESS_ATTACH);
end.

Делаяю на VC++ - все работает как надо


AlexandrR   (2002-09-05 22:20:00) [1]

Всем спасибо!


Digitman   (2002-09-05 11:06:00) [2]

факт вызова блока инициализации модуля вполне можно интерпретировать как DLL_PROCESS_ATTACH или DLL_THREAD_ATTACH (в зависимости от код.потока, вызвавшего LoadLibrary : в случае основного - DLL_PROCESS_ATTACH , в случае дополнительного - DLL_THREAD_ATTACH)


Старый Паскалист   (2002-09-05 10:47:00) [3]

В качестве DllEntryPoint в паскале всегда выступает
ф-я _InitLib из sysinit.pas.
А DllProc - процедура, к-рую она из себя вызывает.

Причём так как DllProc назначается в рантайме (когда ДЛЛ уже загружена), то DLL_PROCESS_ATTACH ты никогда через DllProc не поймаешь.


Ученик   (2002-09-05 09:37:00) [4]

>Almaz © (05.09.02 02:04)
И от меня спасибо, угораздило же меня скопировать из той ветки в "Полезное" :-)

p.s опечатки, сорри


Ученик   (2002-09-05 08:37:00) [5]

>Almaz © (05.09.02 02:04)
И от меня спасибо, угороздало же меня скопировать из той ветки в "Полезное" :-)


Almaz   (2002-09-05 02:04:00) [6]

Убери stdcallв объявлении процедуры DLLEntryPoint.

Удачи.


Наверх

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