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

调用导致堆栈不对称。原因可能是托管的 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);
posted @ 2021-04-26 14:48  STR少寒  阅读(1560)  评论(0编辑  收藏  举报