Я хотел бы упорядочить массив целых чисел от C ++ до C #.У меня есть неуправляемый C ++ DLL, который содержит:
DLL_EXPORT int* fnwrapper_intarr()
{
int* test = new int[3];
test[0] = 1;
test[1] = 2;
test[2] = 3;
return test;
}
с объявлением в заголовке extern "C" DLL_EXPORT int* fnwrapper_intarr();
Затем я использую pinvoke для маршалинга в C #:
[DllImport("wrapper_demo_d.dll")]
[return: MarshalAs(UnmanagedType.SafeArray)]
public static extern int[] fnwrapper_intarr();
И я использую функцию следующим образом:
int[] test = fnwrapper_intarr();
Однако во время выполнения программы я получаю следующую ошибку: SafeArray cannot be marshaled to this array type because it has either nonzero lower bounds or more than one dimension.
Какой тип массива я должен использовать?Или есть лучший способ упорядочить массивы или векторы целых чисел?