1、复杂类型需要C#在定义时保持和C++中的源类型一模一样,特别是成员的顺序,一定要一致。
2、复杂类型中的数组在长度固定时,使用[MarshalAs(UnmanagedType.ByValArray, SizeConst=length)]
如:
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 65535)]
public int[] VectorData = new int[65535];
,长度不固定时,该成员需要定义为IntPtr类型的通用指针,如:
public IntPtr fc;
3、C++中以type* 定义的成员在C#中,除了 char* 可以用 C#的string对应外,其他都应考虑 IntPtr 和 Marshl.Alloc/FreeCoTaskMem。
4、调用函

最低0.47元/天 解锁文章
684

被折叠的 条评论
为什么被折叠?



