Как маршал Int массивы или указатели на массивы Int

(Я понимаю, что это может быть дубликатом, но я не понимаю другие темы)

Я работаю с C # и у меня есть третье лицоdll для этого нужны массивы int (или указатели на массив int) в качестве параметров. Как мне упорядочить массив int между C # и C / C ++? Функции объявлены так:

// reads/writes int values from/into the array
__declspec(dllimport) void __stdcall ReadStuff(int id, int* buffer);

В Сint* будет указатель правильно? Так что я запутался, если мне придется использоватьIntPtr или если бы я мог использоватьint[] (предпочтительнее)? Я думал, что это может быть хорошо:

[DllImport(dllName)]
static extern void ReadStuff(int id, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_I4)] ref int[] buffer);

// call
int[] array = new int[12];
ReadStuff(1, ref array);

Будет ли это работать? Или как мне объявить эту функцию в C # в безопасном коде?

Ответы на вопрос(2)

Ваш ответ на вопрос