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

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

Событие при выходе из приложения [D7, WinXP]


312kbps ©   (2007-10-05 15:24:00) 

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

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

Спасибо!


DiamondShark   (2007-10-05 17:47:00) [1]


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

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


DrPass   (2007-10-05 17:21:00) [2]


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

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


Инс   (2007-10-05 15:54:00) [3]

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


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

спасибо


Инс   (2007-10-05 15:50:00) [5]


> Должны вызываться секции 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 не придет.


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

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


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


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

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

спасибо


Инс   (2007-10-05 15:36:00) [8]

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


Наверх

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