Also es funktioniert leider nicht wie ichs jetzt probier habe:
mit den methoden der obigen liste hab ich ein interface deklariert (ILinkList)
die liste (TLinkList) erbt dann von ILinkList und gezwungener maßen von TInterfacedObject
als
dll funktion parameter übergeb ich ein pointer auf eine TLinkList (PLinkList = ^TLinkList)
hatte ich das so richtig verstanden elvis?
die adresse vom parameter ist auch auf beiden seiten identisch aber schon der anchor ist dann unterschiedlich
die delaration der funktion schaut so aus (beide seiten
)
procedure GetStruct(ALinkList: PLinkList); stdcall;
aufruf d3 seite
Delphi-Quellcode:
var AStruct: TLinkList
begin
AStruct := TLinkList.Create;
try
GetStruct(PLinkList(@AStruct));
...irgendwas mit den daten machen...
finally
AStruct.free;
end;
end;
verarbeitung
dll/d7
Delphi-Quellcode:
procedure GetStruct(ALinkList: PLinkList); stdcall;
begin
if Assigned(ALinkList) then begin
ALinkList^.Clear;
ALinkList^.Add(NewElement);
...
end;
end;
was mach ich falsch?