none
C#调用C++ DLL函数,如何在对应的struct中写入动态数组 RRS feed

  • 问题

  • C#调用C++DLL,可以封送处理struct类型,但如果struct中还有数组,岂不是只能声明成定长?如何实现变长数组的互操作呢?

    比如,有如下代码:

    C# code:

            public struct abc{

               [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] 

                public int[] aa;

            };

    这种方案的中的aa数组只能被定长声明为10,这一点应当如何处理?十分感谢。

    2010年12月9日 11:37

答案

  • C++中不支持变长数组

    如果你非要在C#中使用变长数组的话接口也要是定长的

    然后数据进来了自己倒一下

    • 已标记为答案 啦啦控 2010年12月10日 2:55
    2010年12月10日 2:48

全部回复