struct A
{
 int a;
 int b;
 xxx c;
}
C++接口: void XXX(A a[])
对应到C#里 void XXX(ref A)
应该如何将参数传入?

解决方案 »

  1.   

    c#和c写法是一样的,只不过c传数组都要加个参数指定数组的大小吧
    关键是c和c#结构要完全对应的上,比如字节对齐,数据大小等等
      

  2.   

    如果,用c++写,c#调用 考虑32 位64不同的调用方式,没听说过   c++写一个,c# 写一个 xxx()对应什么鬼
      

  3.   

    定义一个和C++等效的结构体AA,AA[] aa=
    XXX(ref aa);其他,可以搜索:C# 调用C++函数
      

  4.   


     我说的不是结构体的定义,比如结构体的名字是A,那么C++中采用  A a[]这样的写法,对应到C#里则是 ref A a,数组根本就传不进去。
      

  5.   

    那么比如C++接口是 void Function(int a[]),在C#中你应该怎么导入?
      

  6.   

    1.void XXX(A a[])
    一般来说,传入数组首地址,还需要传入结构体数组的长度。2.c#调用c++ api
      结构体对应定义,要逐一确定
       LayoutKind.Sequential及三种附加字段:CharSet、Pack、Size。
       其中任何一项对应不上就会导致数据读写异常。