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

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

Завершение работы 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


Наверх

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