Ich habe eine C-Funktion mit der folgenden Signatur:Wie marshaliere ich einen Zeiger auf ein Array von Zeigern auf Strukturen?
int my_function(int n, struct player **players)
players
ein Zeiger auf ein Feld von Zeigern auf struct player
Objekte. n
ist die Anzahl der Zeiger im Array. Die Funktion ändert weder das Array noch den Inhalt der Strukturen und behält nach der Rückgabe keine Zeiger bei.
ich versuchte, die folgenden:
[DllImport("mylibary.dll")]
static extern int my_function(int n,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)]
player_in []players);
jedoch, dass Streckenposten, die Daten als ein Zeiger auf ein Feld von Strukturen, kein Zeiger auf ein Feld von Zeigern auf Strukturen.