Witam. Mam problem, z którym nie mogę sobie poradzić. A mianowicie aplikacja mdi wywołuje z dynamicznego dll-a formatkę. Kod wywołania formatki z dll-a w aplikacji głównej:
procedure TMainForm.FSFakturaSprzeday1Click(Sender: TObject);
var
dll1 : Thandle;
show_faks : procedure;
begin
try
dll1:=loadlibrary('..\DLL\faks.dll');
@show_faks:=GetProcAddress(dll1,'show_faks');
if @show_faks=nil then raise Exception.Create('Err-001');
show_faks;
finally
@show_faks:=nil;
end;
end;
Kod w wywoływanym dll-u:
procedure show_faks;
var
faksf : Tfaks_f;
begin
faksf := Tfaks_f.Create(application);
faksf.Show;
end;
exports
show_faks name 'show_faks';
begin
end.
i kod formatki w tym dll-u:
procedure Tfaks_f.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;
end.
Środowisko Win XP i delphi 6.0 Enterprise. Problem w tym, że w trakcie działania aplikacji wszystko jest ok ale jak ją zamykam to wywala mi błąd :
...raised exception class EInvalidPointer with message "Invalid pointer operation".
Czy ktoś może mi rozjaśnić gdzie tkwi błąd ?