c#调用c++动态链接库提示错误为:无法封送处理“parameter #2”: 内部限制: 结构太复杂或太大。

2024-11-08 20:01:54
推荐回答(2个)
回答(1):

这什么项目,感觉好牛逼的样子

回答(2):

结构体封装
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 5000)]
public double [] m_p;
SizeConst = 5000 太大旦神了
如果需要传指歼送m_p 填充数据 还是另外写一个吧
[DllImport("路径", EntryPoint = "函数名", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern int 函数( [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] double [] m_p);
此处m_p 传入前需要优先开辟空间 就是 m_p=new double[5000];
m_t pt 也有唯迟冲可能太大了

结构体不能封装这么大数组传送填充
经验之谈!!!