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

Вниз

Отследить выгрузку DLL-ки   Найти похожие ветки 

 
DJ Kondakov   (2008-06-12 10:48) [0]

Зравствуйте! Подскажите, как программе, динамически загрузившей DLL-ку (т.е. через LoadLibrary) отследить ее выгрузку (закрытие главной формы в DLL-ке)?


 
tesseract ©   (2008-06-12 11:23) [1]

Формы и окна в DLL отсутсвуют. Только если эта "dll" на самом деле ActiveX сервер.


 
DJ Kondakov   (2008-06-12 11:30) [2]


> Формы и окна в DLL отсутсвуют.

Кто сказал? В заготовке DLL делаем File - New Form и получаем форму в DLL-ке.


 
Anatoly Podgoretsky ©   (2008-06-12 13:30) [3]

> DJ Kondakov  (12.06.2008 11:30:02)  [2]

Теоритически возможно сделать главную форму в ДЛЛ, практически очень, очень сложно и опасно.


 
Тын-Дын ©   (2008-06-12 13:54) [4]


> DJ Kondakov   (12.06.08 10:48) 


Всё же уточни подробнее, что тебе надо.


 
Поросенок Винни-Пух ©   (2008-06-12 22:00) [5]

Зравствуйте! Подскажите, как программе, динамически загрузившей DLL-ку (т.е. через LoadLibrary) отследить ее выгрузку (закрытие главной формы в DLL-ке)?

с чего это вдруг закрытие какой-то там формы в длл должно привести к выгрузке этой длл?


 
DJ Kondakov   (2008-06-13 09:55) [6]

Короче. Программа загружает DLL и выполняет в ней процедуру. В этой процедуре есть код, который создает и показывает размещенную в DLL форму. Необходимо отследить закрытие этой формы, чтобы перешедшая в ждущий режим программа могла завершиться.


 
Поросенок Винни-Пух ©   (2008-06-13 13:25) [7]

модальная форма. тогда ничего отслеживать не надо.
либо если не модальная, то цикл ожидания флага после show в длл.
тоже ничего отслеживать не надо.


 
МистерТ   (2008-06-13 17:31) [8]

library Library1;
//------------------------------------------------------------------------------
//
// Основная процедура библиотеки
//
// Вызывается когда библиотека загружается в адрессное пространство какого-либо
// процеса или нити
//
// Входные данные:
//   dwReason - причина вызова процедуры
//
//------------------------------------------------------------------------------

procedure DllEntry(dwReason: DWORD);
begin
 case dwReason of
   //--------------------------------------//
   // библиотека подключается к приложению //
   //--------------------------------------//
   DLL_PROCESS_ATTACH:
     begin
     end;
   //-----------------------------------------------------------------//
   // библиотека высвобождается из адрессного пространства приложения //
   //-----------------------------------------------------------------//
   DLL_PROCESS_DETACH:
     begin
     end;
   DLL_THREAD_ATTACH:
     begin
     end;
   DLL_THREAD_DETACH:
     begin
     end;
 end;

end;

//------------------------------------------------------------------------------
//
// Объявление основной процедуры библиотеки
//
//------------------------------------------------------------------------------

begin
 @DllProc := @DllEntry;
 DllEntry(DLL_PROCESS_ATTACH);
end.



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

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

Наверх




Память: 0.48 MB
Время: 0.013 c
9-1180939732
MegaVolt
2007-06-04 10:48
2009.07.26
Проблемы при освоении OpenGL. Подскажите решение.


15-1243110603
Юрий
2009-05-24 00:30
2009.07.26
С днем рождения ! 24 мая 2009 воскресенье


15-1242798394
palva
2009-05-20 09:46
2009.07.26
Сегодня умер Олег Янковский


15-1242854996
Германн
2009-05-21 01:29
2009.07.26
Поздравляю Шахтёр!


15-1243326751
Василий Жогарев
2009-05-26 12:32
2009.07.26
Архитектурный софт Free (Рисуем бани)