Kod biblioteki:
library test;
uses
Forms,
Windows,
SysUtils,
Classes,
dll in 'dll.pas' {frmDllForm};
{$R *.res}
procedure DllMain(Reason: Integer);
begin
case Reason of
DLL_PROCESS_DETACH: MessageBox(0, 'Library unloaded...', 'Unloading DLL', MB_OK OR MB_ICONINFORMATION);
DLL_THREAD_ATTACH: MessageBox(0, 'Thread created...', 'Thread Created', MB_OK OR MB_ICONINFORMATION);
DLL_THREAD_DETACH: MessageBox(0, 'Thread destroyed...', 'Thread Destroyed', MB_OK OR MB_ICONINFORMATION);
end;
end;
procedure ShowDLLForm(); stdcall;
begin
frmDllForm := frmDllForm.Create(Application);
frmDllForm.ShowModal;
frmDllForm.Free;
end;
exports
ShowDLLForm name 'ShowForm';
begin
MessageBox(0, 'Library loaded...', 'Loading DLL', MB_OK OR MB_ICONINFORMATION);
DLLProc := @DllMain;
end.
Kod loadera:
implementation
{$R *.dfm}
procedure forma();
stdcall; external 'test.dll' name 'ShowForm';
procedure TForm1.Button1Click(Sender: TObject);
begin
forma();
end;
end.
Po uruchomieniu wyświetla mi boxa z Library Loaded, przy zamykaniu Library Unloaded - biblioteka się ładuje, ale kiedy klikam na loaderze przycisk, dostaję wyjątek:
Potrafi ktoś pomóc?