DllImport传参 引用c++的一个dll,有一函数原型是getJumbIcon(CONST TCHAR *filePath),c#里参数类型应该怎么定义,传的是字符串 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不行对 PInvoke 函数“MyStart!MyStart.Data::getJumbIcon”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。 [DllImport("dll.dll", CallingConvention = CallingConvention.Cdecl)]由于默认一般是Winapi,在桌面平台上等于StdCall,如果出现堆栈不平衡,一般表示dll导出函数使用cdecl调用约定。 是string LPCTSTR =CONST TCHAR *->String C#LPTSTR= -> char *->[MarshalAs(UnmanagedType.LPTStr)] string (C#) C++的成员函数不能这么使用,事实上成员函数还有一个隐藏的this指针,导致参数不匹配。你得导出一个全局函数。 不行此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。 [DllImport("DLL文件名.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Auto)]返回类型 getJumbIcon([MarshalAs(UnmanagedType.LPTStr)]string filePath) 还是这个错误,用CallingConvention.Cdecl就出现这个错误此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。 小弟我正在写一个WPF项目,遇到一个难题,求各位大神指导…… 如何往excel单元格写入或者修改数据 C#实现Telnet客户端功能 .NET2003里面的问题! 接收fckeditor编辑器控件值错误 我想把字符转化为数字再反转回字符 关于winform,dataGrid中加入linkLabel的问题 超古怪的错误消息 “Fill: SelectCommand.Connection 属性尚未初始化。”的问题? 求:系统重启时自动启动应用程序的代码或示例. 关于数据绑定和数据存储 C# 如何把二进制里的"1"变"0"把"0"换成"1"呢
不行
对 PInvoke 函数“MyStart!MyStart.Data::getJumbIcon”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
LPCTSTR =CONST TCHAR *->String C#
LPTSTR= -> char *->[MarshalAs(UnmanagedType.LPTStr)] string (C#)
不行
此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。
返回类型 getJumbIcon([MarshalAs(UnmanagedType.LPTStr)]string filePath)
还是这个错误,用CallingConvention.Cdecl就出现这个错误
此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。