c#动态调用dll返回值问题 c# 动态调用dll 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 检查下delphi的字符串编码和返回,贴出有关代码 delphi感觉应该没问题,因为通过dllimport 静态调用的时候,可以正常返回结果。我也怀疑可能是编码的问题,但是,不知道从哪里找起,不知道修改哪里。 delegate int GetBusinessData1(string inputData, [MarshalAs(UnmanagedType.LPWStr)] ref StringBuilder outputdata); StringBuilder换成String试试 如果你使用 DllImport 的时候,可以正确使用,而且使用了 ref 参数。那么我估计是字符集的问题。因为没有看到你的 C 版本的签名,不是很确定。那么使用 UnmanagedFunctionPointerAttribute 特性修饰一下那个 delegate。并且根据 C 版本的签名,确定字符集。 这个方法有效,但是需要再改下:delegate int GetBusinessData1([MarshalAs(UnmanagedType.LPWStr)] string inputData, [MarshalAs(UnmanagedType.LPWStr)] ref StringBuilder outputdata); .net TreeView脚本错误 C# WinForm 分层 请问c#有没有类似Vb6.0中的Val()函数? 获得每一个独立硬盘下的分区卷标 如何使用DevExpress的XtraBar? 难道.net制作网页在后台能不能对<embed >进行编程访问? 怎样用正则表达式去掉标点符号和特殊操作符 新手:c#为什么要设置get块和set块 @@@@@@@@@@@@反序列化后附件不能使用- C#自定义方法里,.text 属性无法附值,救命 如何在A窗口dgv选中行然后双击或点击编辑打开B窗口且选中的信息显示在B窗口里 vs2013 asp.net如何打开样式生成器
StringBuilder换成String试试
那么我估计是字符集的问题。因为没有看到你的 C 版本的签名,不是很确定。
那么使用 UnmanagedFunctionPointerAttribute 特性修饰一下那个 delegate。并且根据 C 版本的签名,确定字符集。
delegate int GetBusinessData1([MarshalAs(UnmanagedType.LPWStr)] string inputData, [MarshalAs(UnmanagedType.LPWStr)] ref StringBuilder outputdata);