mhm, der compiliert das jezt, aber wnn man die function aus der lib startet, friert das fenster einfach ein
LIB:
Code: Alles auswählen
library test;
{$mode delphi}{$H+}
uses
cthreads, Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons,
ExtCtrls, StdCtrls, ComCtrls
{ add your units here };
function InitPlugin(param1,param2,param3,param4,param5,param6,param7,param8,param9,param10 : pchar; mainform : tform):boolean;stdcall;
var
Button: TButton;
begin
result := true;
Button:=TButton.Create(nil);
with Button do
begin
Parent:=mainform;
Caption:=string(param1);
Left:=100;
Top:=100;
end;
end;
exports
InitPlugin;
begin
end.
Aufruf:
Code: Alles auswählen
type Tplugin= function (param1,param2,param3,param4,param5,param6,param7,param8,param9,param10 : pchar; mainform : tform):boolean;stdcall;
var
PluginHandle :Thandle ;
Plugin :tplugin;
procedure TForm1.Button9Click(Sender: TObject);
begin
pluginhandle:=LoadLibrary('libtest.so');
if pluginhandle<>0 then
begin
plugin:=Tplugin(GetProcAddress(pluginhandle,'InitPlugin'));
if Assigned(plugin) then
plugin(pchar('hallo'),pchar(''),pchar(''),pchar(''),pchar(''),pchar(''),pchar(''),pchar(''),pchar(''),pchar(''),form1)
else
ShowMessage('not assignet!');
FreeLibrary(pluginhandle);
end
else
ShowMessage('Library not found');
end;
warum funktioniert das nicht?