将C ++ struct二维数组转换为C#

时间:2011-06-01 07:10:23

标签: c# c++ dll struct marshalling

  

可能重复:
  What does “Invalid managed/unmanaged type combination.” mean?

我们将如何在C#

中编写这些结构(用C ++编写)
typedef struct tagBIRDMATRIX
{
short   n[3][3];    // array of matrix elements
}BIRDMATRIX;

1 个答案:

答案 0 :(得分:7)

大小应该是交叉产品中元素的数量。

 struct BIRDMATRIX
 {
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 9)]
    short[,] n;
 }