Dynamisk Array: C++ vs Delphi
Jeg har en DLL fil der er kompilet i Delphi! En af funktionerne har nogle parametre, hvor der indegår unsigned pointers! Disse pointers forventes at pege på dynamiske arrays, hvorefter funktionen vil behandle dem med at sætte en længde og fylde dem op med data! Problemet er at i C++ fungere dynamiske arrays lidt anderledes end i Delphi! Et hurtigt eksempel er:Delphi...
var
A : array of Integer;
begin
SetLength(A,10); // Sætter længden på den dynamiske array
if High(A) = 9 then //Finder længden på array'en via High()
//Gør et eller andet
end;
Tilsvarende i C++...
{
int Size = 10; //Bestemmer længden
int *A; //Definere A som pointer til en Integer
A = new int[Size]; //Skaber array'en med new
if (Size == 10) //Finder længden på A med den allerede givne størrelse
//Gør et eller andet
}
Mit spørgsmå, er, i stedet for at bruge Size (C++ eksemplet) til at finde længden på A, kan jeg så ikke bruge andet noget andet - altså en High() funktion bare i C++? Eller kan jeg på en eller anden måde bygge en klasse i C++, der virker præcist som Delphi's dynamiske array?
Hvis jeg sender en C++ dynamisk array i DLL funktionen, får jeg en ubehagelig error! Åbenbart fordi de to typer arrays ikke fungere ens!
