Witam.
W mojej aplikacji MDI wywołuję formy MDIChild z dynamicznych DLL-i. Na razie robię to tak:
DLL-ka:
library mag;
uses
SysUtils,
Windows,
Forms,
Classes,
Sharemem,
mag_frm in 'mag_frm.pas' {mag_f};
var
dllapp : TApplication;
{$R *.res}
procedure show_mag(MainApp : Tapplication);
var
magf : Tmag_f;
begin
if not Assigned(DllApp) then begin
DllApp := Application;
Application := MainApp;
end;
magf := Tmag_f.Create(MAinapp);
magf.Show;
end;
procedure MyDLLProc(Reason: Integer);
begin
if Reason = DLL_PROCESS_DETACH then
if Assigned(DllApp) then
Application := DllApp;
end;
exports
show_mag name 'show_mag';
begin
DLLProc := @MyDLLProc;
end.
I główna forma programu:
var
MainForm: TMainForm;
procedure show_mag (MainApp : TApplication);external '..\DLL\mag.dll';
procedure TMainForm.ToolButton2Click(Sender: TObject);
begin
show_mag (application);
end;
Problem polega na tym, że w trakcie działania aplikacji wszystko jest tak jak powinno być i dzała jak powinno, ale kiedy zamykam aplikację to pojawia się błąd :
W aplikacji wystąpił wyjątek nieznany wyjątek programowy (0x0eedfade) pod adresem 0x7c81eb33.
a następnie :
Runtime error 217 at 00383C74
Proszę jeśli ktoś wie co jest nie tak to pliss pomocy.