本文主要是介绍C#调用C++动态库时出错的解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在C#工程中调用C++写的动态库,运行时出现了如下描述的错误:
其他信息: 对 PInvoke 函数“WindowsFormsApplication1!WindowsFormsApplication1.Form1::check_sn”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
解决办法:
在dllimport中加入CallingConvention参数就行了,[DllImport(PCAP_DLL, CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]
这篇关于C#调用C++动态库时出错的解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!