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 的封送处理错误,这些错误可能会损坏堆栈。 急求: C# 中关于MDI的问题 请大家看看,问题是这样的 求??谁知道动网后台的分类管理是如何做的,主要是DataGrid的树状结构显示是如何做的? 今天改了一个类(数据库操作),各位看官帮忙挑挑毛病。。。顶者有分 如何用c#做一个ping 的软件呢! 界面的问题,对了马上给分!谢谢 sqldatareader的问题 asp.net调试问题,请教 请教微软专家,用C#写出的WINDOWS应用程序,如何保证源码安全? c#是编译还是解释型的还是。。 关于数据绑定和数据存储 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 的封送处理错误,这些错误可能会损坏堆栈。