Thema: Delphi Integer Array in Dll

Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#2

Re: Integer Array in Dll

  Alt 10. Sep 2006, 12:04
Erstmal mußt du die Länge des Arrays immer mit übergeben. Dynamische Arrays wie sie in Delphi realisiert werden haben natürlich nichts mit C-Arrays zu tun oder gar mit der MFC-Klasse CArray o.ä.

Ein Array ist ansonsten nur ein Pointer auf den Typ der Elemente des Arrays. Man kann also auch schreiben:

Delphi-Quellcode:
type
   PInteger = ^Integer;

procedure Test(var Ausgabe: PInteger; var ArrLength: Integer); stdcall;
begin
...
end;
Cleverer wäre natürlich eine Struktur zu deklarieren, die portabel ist, Bsp:

Delphi-Quellcode:
type
   PInteger = ^Integer;
   IntArray = record
     Length: LongWord;
     Array: PInteger;
   end;
... wobei die DLL natürlich auch gleich die Funktionen zum Allozieren und De/Reallozieren mit exportieren muß, weil du nicht einfach die Memory Manager von C# und Delphi mischen kannst.
  Mit Zitat antworten Zitat