首页 > 其他 > 详细

调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配

时间:2021-04-26 22:58:55      阅读:21      评论:0      收藏:0      [点我收藏+]

调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配

  • 用c#调用C++的动态链接库的dll
在dllimport中加入CallingConvention参数就行了
[DllImport(PCAP_DLL, CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]
/// <summary>
/// 初始化函数
/// </summary>
/// <param name="pErrMsg">动态库初始化错误信息</param>
/// <returns></returns>
[DllImport("SiInterface.dll", EntryPoint = "INIT",CallingConvention = CallingConvention.Cdecl)]
public static extern int INIT(ref string pErrMsg);

调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配

原文:https://www.cnblogs.com/STRSong/p/14704596.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!