Also entweder bin ich doof oder, des stimmt einfach net:
Ich hab da schon in den tut nachgeschaut mit dan dlls, da steht ja drinn wie ich dlls zur laufzeit einbinde, aber bei mir tut des net!
bei den siht des so aus:
Delphi-Quellcode:
unit Unit1;
interface
uses windows;
type
TSummenFunktion =
function(zahl1, zahl2: integer): integer;
stdcall;
function addieren(zahl1, zahl2: integer): integer;
implementation
function addieren(zahl1, zahl2: integer): integer;
var SummenFunktion: TSummenFunktion;
Handle: THandle;
begin
Handle:=LoadLibrary(PChar(ExtractFilePath(ParamStr(0))+'
rechnen.dll'));
if Handle <> 0
then begin
@SummenFunktion := GetProcAddress(
Handle, '
addiere');
if @SummenFunktion <>
nil then begin
result:=SummenFunktion(zahl1, zahl2);
end;
FreeLibrary(
Handle);
end;
end;
end.
also des tat schonmal bei mir nich,
und wie soll des bei proceduren ausschauen?
wenn ich des am anfang lad tut bei mir die
dll aber so halt net, und es isch dringend erforderlich das des dynamisch geladen wird!
also bei mir siht das so aus:
Delphi-Quellcode:
type
Tinitform = function(owns:tcomponent;a:TwinControl):boolean; stdcall;
function addieren(owns:tcomponent;a:TwinControl):boolean;
...
implementation
...
function addieren(owns:tcomponent;a:TwinControl):boolean;
var initform: Tinitform;
Handle1: THandle;
begin
Handle1:=LoadLibrary(PChar('./dlls\formcreate.dll'));
if Handle1 <> 0 then begin
@initform := GetProcAddress(Handle1, 'initform');
if @initform <> nil then begin
showmessage('c');
result:=initform(owns,a);
end;
FreeLibrary(Handle1);
end;
end;
wo bei die
dll soaus siht:
Delphi-Quellcode:
...
var myform1:tform1;
function Initform(owns:tcomponent;a:TwinControl):boolean; stdcall;
begin
form1:=tform1.Create(application);
form1.Visible:=true;
result:=true;
end;
exports
initform;
begin
end.
also ich bin da echt zu blöd des selbst hin zu bekommen,
wie gesgt wenn ihs am anfang ein binde tuts!