将C#Jagged数据编组到C ++
我正在尝试将2D C#锯齿状数组( double[][] jaggedArray
) double[][] jaggedArray
到C ++ dll中,我已将接收变量指定为double**
。
但是,我收到的消息是:
嵌套数组没有编组支持。
如果没有扁平化锯齿状arrays,有没有办法在C ++ dll中使用C#中的锯齿状数组?
使用低级Marshal类方法,可以将任何类型编组为非托管内存。 例如,对于jaggedArray中的每个double []数组,使用Marshal.AllocHGlobal分配非托管内存块,并使用Marshal.Copy方法(Double [],Int32,IntPtr,Int32)方法将数组成员复制到它。 AllocHGlobal返回IntPtr类型,在这种情况下可以作为poiner传递给C ++方法,double *。