我想编组二维数组
int [10][20] //const dimensions size
从C ++ dll到C#代码。是否有自动封送器?找不到这么容易的任务的好方法。
public int[,] _operators;
提供未定义的值。 是的,我可以将它设为一维仅用于编组,然后再用C#中的2个dimsions读取它,但是有自动简单方法吗?
=================
我认为最好的方法是使用这样的指针:
const int 1dSize = 10;
const int 2dSize = 10;
var ret = new int[1dSize, 2dSize];
unsafe
{
int* ptrOnArray = NativeLibPrototypes.Get2DArrayPtr();
for (int i1 = 0; i1 < 1dSize; i1++)
{
for (int i2 = 0; i2 < 2dSize; i2++)
{
ret[i1, i2] = *ptrOnArray;
ptrOnArray++;
}
}
}
答案 0 :(得分:1)
试
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 200)]
int[] _operators;
大小应该是数组中元素的数量。