Hallo,
Das was du vor hast, funktioniert mit Interfaces:
DLL:
Delphi-Quellcode:
library Demo;
interface
type
ITest = interface
procedure DoSomething;
end;
TTest = class(TInterfacedObject, ITest)
public
procedure DoSomething;
end;
implementation
function CreateTest: ITest;
begin
Result := TTest.Create;
end;
exports
CreateTest;
Irgendein (Auch Nicht-Delphi) Programm:
Delphi-Quellcode:
ITest = interface
procedure DoSomething;
end;
function CreateTest: ITest; external 'Demo.dll';
var Test: ITest;
begin
Test := CreateTest;
Test.DoSomething;
end;
Es kann allerdings gut sein, dass dein Interface eine
GUID braucht.
Das sähe dann z.B. so aus:
Delphi-Quellcode:
ITest = interface
['{D4A90A31-4BCC-498E-BA5C-4D868D6F6573}']
procedure DoSomething;
end;
Die
GUID muss natürlich in der
DLL und im Programm gleich sein.
Generieren kannst du eine
GUID indem du in Delphi im Code Strg+Umschalt+G drückst.
Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."