ok, doppelt aufrufen musst du nicht unbedingt, du kannst auch gleich genügend speicher mitgeben.
Delphi-Quellcode:
var
MeineElemente:
Array of Element;
Anzahl : Integer;
begin
Anzahl := 1000;
//Wie groß die Zahl ist weißt nur du, ich weiß nicht wieviel werte deine dll maximal liefert
SetLength(MeineElemente, Anzahl);
Anzahl := Dll_GibWerte(@MeineElemente[0], Anzahl);
//Prüfen ob der Speicher gereicht hat, wenn nicht machen wir das ganze diesmal mit der richtigen Anzahl
if (Anzahl < Length(MeineElemente)
then
begin
SetLength(MeineElemente, Anzahl);
Dll_GibWerte(@MeineElemente[0], Anzahl);
end;
[...]
end;