WINFORM调试调用C++的DLL报错 你需要看dll里的函数声明到底是什么如果你重新声明的参数跟dll里的不一样,调用出错很正常 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 既然是output,你用out关键字试试,不要用ref 我用out 试过, ref 试过 ,都不用也试过 结构加上 CharSet 属性,并且使用多字节的。导出的方法不需要的。 看看是不是字节对齐的问题试下这个 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)] Charset属性我试过,Ansi ,Auto ,Unicode都不行 [DllImport("Client.dll", EntryPoint = "MisInterface")] private static extern int MisInterface(ref ccb_in_struct inputData, ref ccb_out_struct outputData); [StructLayout(LayoutKind.Sequential, CharSet=Ansi)] public struct ccb_out_struct另外一个结构类似。 你这个肯定不对。char对应的是byte你用string肯定不行。 两个 ref 都加上了吗? 两个 ref 都加上了吗? 两个 ref 都加上了吗? ccb_out 这个变量,每一个字段,要分配对应的数据。换句话说: rspCode这些字段,要赋值,可以生成空的数据。你不分配内存,传入C++中,就是NULL,就会出现这个问题。 我用byte[] 也试过的,一样的 System.Runtime.InteropServices.Marshal.StructureToPtr转一下再传入,系统多少位的,软件多少位,dll多少位 我的问题解决了!但我至今还没想通!正如 Saleayas 说的两个参数都要加ref ,可是一个是传入参数,加ref有什么用呢?感谢各位的热情帮助 ,Saleayas 给您一半分数,其他有参考价值的我也适当分配些!感谢各位! Leave事件真烂 如何在datagridview中添加数据库中没有的新字段? 请教一个SQL问题,insert方面的 文件下载问题 js得到按钮点击的值 sqlserver2005方面的问题 钩子问题 高手!!!!!!!!!!!!!!!!!!!!ajaxpro 返回DATASET后JS怎么删除DATASET中的行.. Access中的文本对于OleDbType中哪个类型 多语言混合编程 ConnectionString 属性尚未初始化 WPF中按钮的属性(properties)在哪里?
导出的方法不需要的。
试下这个
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
Charset属性我试过,Ansi ,Auto ,Unicode都不行
private static extern int MisInterface(ref ccb_in_struct inputData, ref ccb_out_struct outputData);
[StructLayout(LayoutKind.Sequential, CharSet=Ansi)]
public struct ccb_out_struct另外一个结构类似。
char对应的是byte你用string肯定不行。
换句话说: rspCode这些字段,要赋值,可以生成空的数据。
你不分配内存,传入C++中,就是NULL,就会出现这个问题。
我用byte[] 也试过的,一样的
转一下再传入,系统多少位的,软件多少位,dll多少位