У меня есть функция C со следующей сигнатурой:
int my_function(int n, struct player **players)
players
- это указатель на массив указателей на объекты struct player
. n
- количество указателей в массиве. Функция не изменяет массив и содержимое структур, и после возвращения не сохраняет указателей.
Я попробовал следующее:
[DllImport("mylibary.dll")]
static extern int my_function(int n,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)]
player_in []players);
Однако это упорядочивает данные как указатель на массив структур, а не на указатель на массив указателей на структуры.