C++;将二维数组构造成C#

C++;将二维数组构造成C#,c#,c++,dll,struct,marshalling,C#,C++,Dll,Struct,Marshalling,可能重复: 我们将如何用C编写这些结构(用C++编写)# 大小应该是叉积中的元素数 struct BIRDMATRIX { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 9)] short[,] n; } 你收到错误信息了吗?如果是的话,请给我们这些信息。否则,请在.Net pInvoke上查找文档。Merlyn Morgan Graham你说得对,它有一些相似之处。让我编辑我的问题。很抱歉……这是一个巧妙的技巧,我试

可能重复:

我们将如何用C编写这些结构(用C++编写)#


大小应该是叉积中的元素数

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

你收到错误信息了吗?如果是的话,请给我们这些信息。否则,请在.Net pInvoke上查找文档。Merlyn Morgan Graham你说得对,它有一些相似之处。让我编辑我的问题。很抱歉……这是一个巧妙的技巧,我试图使用良好的多维数组来修复,但无法编译。不过,您可以这样做
fixed short n[3*3]
,但您的确实更好。这是一个错误,“错误1错误数组声明器:要声明托管数组,秩说明符位于变量标识符之前。要声明固定大小的缓冲区字段,请在字段类型之前使用fixed关键字。”@John,是的,如果你能帮忙的话,试着远离C#中的固定和指针。它们在语言上很方便,不像对待两岁的孩子那样对待你,但当你在c#中需要它们时,它们通常会让你感到头疼。我喜欢.NET,但有时,我只想找回我的指针。@LMC008抱歉,我会解决它。@LMC008现在检查一下。我总是把它弄混。
 struct BIRDMATRIX
 {
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 9)]
    short[,] n;
 }