Hallo,
habe im Rahmen eines PlugIn Systems versucht eine Funktion meiner dynamisch geladenen
DLL dem OnClick-Ereignis eines Buttons zugewiesen. Das Zuweisen funktioniert auch wunderbar (Der Procedurheader ist identisch usw.). Doch wenn ich auf diesen Button Klicke bekomme ich eine
AV. Im CPU Fenster erscheinen nur ????. Ich weise die Funktion so zu:
Programm:
Delphi-Quellcode:
type
TSummenFunktion =
procedure(Sender: TObject);
var
Form6: TForm6;
implementation
{$R *.dfm}
procedure TForm6.Button1Click(Sender: TObject);
var SummenFunktion: TSummenFunktion;
Handle: THandle;
begin
Handle := LoadLibrary(PChar('
plugin.dll'));
if Handle <> 0
then begin
@Button2.OnClick := GetProcAddress(
Handle, '
add');
if @SummenFunktion <>
nil then begin
end;
FreeLibrary(
Handle);
end;
end;
DLL:
Delphi-Quellcode:
library Project2;
uses
SysUtils,
Classes, Dialogs;
{$R *.res}
procedure add(Sender: TObject);
begin
ShowMessage(Sender.ClassType.ClassName);
end;
exports
add;
begin
end.
Gruß kabuco