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

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

Деструктор в DLL есть? [D5]


De ©   (2006-05-03 18:32:00) 

Привет, All!
есть ли Деструктор в DLL и как с ним правильно работать?


De   (2006-05-04 18:47:00) [1]

господа всем спасибо
бага у меня была


DiamondShark   (2006-05-04 15:56:00) [2]


> у меня ругается :(

а у меня не ругается.
что делать будем?
Предлагаю поискать разницу между своим и моим кодом.


Сергей М.   (2006-05-04 15:49:00) [3]


> но ошибка ведь выдается
>


Видимо, она выданется только тебе, под большим секретом, нам неведомым.


De   (2006-05-04 15:46:00) [4]

>Сергей М.
но ошибка ведь выдается


Сергей М.   (2006-05-04 15:38:00) [5]


> De   (04.05.06 15:34) [6]


Учим Паскаль.

DLL или неDLL - это не имеет ни малейшего значения.


De   (2006-05-04 15:34:00) [6]

>DiamondShark

взял вот здесь:
http://citforum.ru/programming/digest/dlldelphi.shtml
ищем на странице "модуль DLL не имеет"

а относительно секций exports и begin где располагается finalization
P.S.
у меня ругается :(
Declaration expected but 'FINALIZATION' found


DiamondShark   (2006-05-04 11:56:00) [7]


> De   (03.05.06 19:04) [3]
>
> > В отличии от других типов модулей, модуль DLL не имеет
> ни
> > секции initialization, ни секции finalization.

Где ты это взял? Брось каку.

Создаём Project group

Project1:

procedure TForm1.Button1Click(Sender: TObject);
begin
 FModule := LoadLibrary('Project2.dll');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 FreeLibrary(FModule);
end;

------

Project2:

library Project2;

uses
 SysUtils,
 Classes,
 Unit2 in 'Unit2.pas';

{$R *.RES}

begin
end.

unit Unit2;

interface

implementation

uses
 Dialogs;

initialization
 ShowMessage('Initialization');
finalization
 ShowMessage('Finalization');

end.

----

Запускаем, наслаждаемся чудом.


easy   (2006-05-03 22:42:00) [8]

library MyDll;

procedure MyLibraryProc(Reason: Integer);
begin
 if Reason = DLL_PROCESS_DETACH then
 begin
   // Сюда FreeLibrary
 end;
end;

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


De   (2006-05-03 19:04:00) [9]

Desdechado
а это как?

> В отличии от других типов модулей, модуль DLL не имеет ни
> секции initialization, ни секции finalization.

требуется выполнить некоторый код перед выгрузкой моей dll
где его разместить?

P.S.
моя dll юзает сторонюю dll'ку куда пихнуть FreeLibrary?


Leonid Troyanovsky   (2006-05-03 18:48:00) [10]


> De   (03.05.06 18:32)  

> есть ли Деструктор в DLL и как с ним правильно работать?


Правильно не работать с деструктором в dll.

--
Regards, LVT.


Desdechado   (2006-05-03 18:40:00) [11]

деструктор чего?

секция finalization есть в каждом модуле твоей DLL


Наверх

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