Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];

Вниз

DLL_PROCESS_DETACH / DLL_PROCESS_ATTACH   Найти похожие ветки 

 
AlexandrR   (2002-09-04 22:51) [0]

Привет всем!
У меня проблема.
Переопределяю я 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++ - все работает как надо


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

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

Удачи.


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

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


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

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

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



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

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

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


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

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


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

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.006 c
3-50658
Азазелло
2002-08-23 09:11
2002.09.16
Delphi+ADO+MSSQL


14-50934
France
2002-08-21 12:44
2002.09.16
Принтер выбрасывает лист


7-50987
Zlo@der
2002-06-27 15:53
2002.09.16
Как узнать серийный номер винта.


1-50852
AFrolov
2002-09-04 10:23
2002.09.16
Как проследить за прооцессом освобождения ресурсов программой?


3-50615
Sergey-ZZZ
2002-08-26 15:03
2002.09.16
InterBase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский