Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.23;
Скачать: CL | DM;

Вниз

Событие при выходе из приложения   Найти похожие ветки 

 
312kbps   (2007-10-05 15:24) [0]

Уважаемые профессионалы )

есть dll которая цыпляется к некому приложению, скажите, как получить в этой dll событие закрытия приложения ?

Спасибо!


 
Инс ©   (2007-10-05 15:36) [1]

Обрабатывать уведомление DLL_PROCESS_DETACH


 
312kbps   (2007-10-05 15:41) [2]


> Инс ©   (05.10.07 15:36) [1]

можно чутка поподрубнее !? )

спасибо


 
REA   (2007-10-05 15:46) [3]

Должны вызываться секции Finalization модулей. Еще есть трюк с подменой адреса цепочки вызовов при выходе.


 
Инс ©   (2007-10-05 15:50) [4]


> Должны вызываться секции Finalization модулей.

Тоже вариант


> можно чутка поподрубнее !? )

library MyLib;

....

procedure DLLEntryPoint(Reason: Integer);
begin
 case Reason of
   DLL_PROCESS_ATTACH: ...
   DLL_PROCESS_DETACH: ...
   DLL_THREAD_ATTACH: ...    
   DLL_THREAD_DETACH: ...    
 end;
end;

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


Только если процесс завершить жестко (TerminateProcess) - уведомление DLL_PROCESS_DETACH не придет.


 
312kbps   (2007-10-05 15:53) [5]

спасибо


 
Инс ©   (2007-10-05 15:54) [6]

Только надо бы уточнить, что уведомление DLL_PROCESS_DETACH приходит не только при завершении процесса, который загрузил библиотеку, а вообще при выгрузке процессом библиотеки из своего адресного пространства.


 
DrPass ©   (2007-10-05 17:21) [7]


> Должны вызываться секции Finalization модулей

Теоретически, не должны. Они не сами по себе вызываются, это делает загрузчик исполняемого файла. А т.к. DLL (в отличии от BPL) грузится в обход загрузчика, то и секции инициализации/финализации выполняться не должны. Не проверял, но я так думаю :)


 
DiamondShark ©   (2007-10-05 17:47) [8]


> Не проверял, но я так думаю :)

Практика -- критерий истины.



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

Текущий архив: 2007.12.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
15-1195968708
PZ
2007-11-25 08:31
2007.12.23
«Шедевры Метража»


15-1195910267
VladOil
2007-11-24 16:17
2007.12.23
Картинку в RichEdit


3-1187104888
SHTrassEr
2007-08-14 19:21
2007.12.23
Access, ADO и проблемы доступа к базе


2-1196440912
vegarulez
2007-11-30 19:41
2007.12.23
Вопрос (даже не знаю как правильно сформулировать) про группы.


2-1196577450
Новый
2007-12-02 09:37
2007.12.23
Как программно можно проверть, существуеть ли таблиц в Оракле