![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Деструктор в 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