![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Завершение работы DLL [D6]
granni © (2005-07-12 12:27:00)Надо к DLL-ке добавить код, который будет автоматически выполняться при ее выгрузке. Не знаю, в каком виде и куда его писать. Помогите!!!
granni (2005-07-12 14:25:00) [1]ВСЕМ ОГРОМНОЕ СПАСИБО. А я про DllProc и не знал...
Eraser (2005-07-12 14:15:00) [2]KosilkA © (12.07.05 13:22) [7]
и в 7 версиях тоже такая ошибка, народ жалуется на разных форумах
Всё в 7 работает.
isasa (2005-07-12 13:37:00) [3]Библиотека работает(даже в дебаг моде) на D7 (build 4.453)
iva (2005-07-12 13:34:00) [4]Ставь UpdatePack 2
isasa (2005-07-12 13:31:00) [5]Рабочая б-ка, скомпилирована в D7.
KosilkA (2005-07-12 13:22:00) [6]да, я сейчас поиском порылся, похоже что и в 5 и в 7 версиях тоже такая ошибка, народ жалуется на разных форумах
Agile (2005-07-12 13:17:00) [7]а я долго не мог понять, почему это у меня в билдере dllproc работает, а делфях не пашет..
теперь ясно! сэнкс!
KosilkA (2005-07-12 13:11:00) [8]а в 6 дельфи DllProc не работает насколько я помню, это вроде как признанный баг, модуль system надо править, перекомпиллировать..Проще через initialization наверное..
KosilkA (2005-07-12 13:11:00) [9]то есть через finalization=)
isasa (2005-07-12 12:59:00) [10]так
library mnemolib;
uses
Windows,
grFrame in 'grFrame.pas' {grContainer: TFrame};
{$R *.res}
procedure DLLEntryPoint(Reason: Word);
begin
case Reason of
DLL_PROCESS_ATTACH: grContainer:=TgrContainer.Create(nil); //загрузка
DLL_PROCESS_DETACH: grContainer.Free; //выгрузка
DLL_THREAD_ATTACH: ;
DLL_THREAD_DETACH: ;
end;
end;
exports
GetSUpic name 'GetSUpic';
begin
DLLProc:=@DLLEntryPoint;
DLLEntryPoint(DLL_PROCESS_ATTACH);
end.
Чапаев (2005-07-12 12:30:00) [11]Смотри раздел finalization. Ещё можно DllProc покурить.
stone (2005-07-12 12:28:00) [12]туда где вызывается код выгрузки DLL, т.е. после FreeLibrary