C#--异常--函数调用导致堆栈不对称

1、异常提示信息为:函数调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。

2、出现场景:这种异常大多出现在C#调用C++的动态库时。

3、处理方法

把 [DllImport("winmm.dll", EntryPoint = "sndPlaySoundA",)]
改为[DllImport("winmm.dll", EntryPoint = "sndPlaySoundA" , CallingConvention = CallingConvention.Cdecl)]

//C#中引入C++ DLL库
//[DllImport("bq80xrw.dll", EntryPoint = "GetAdapterFWVersion")]
[DllImport("bq80xrw.dll", EntryPoint = "GetAdapterFWVersion, CallingConvention = CallingConvention.Cdecl)]
public static extern int GetAdapterFWVersion([MarshalAs(UnmanagedType.LPStr)]string FWVersion);


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部