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

Posted ldldavid

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# DllImport“调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配 ”相关的知识,希望对你有一定的参考价值。

调用外部dll时,出现如下问题

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

后来经过仔细检查发现,误把vb中的longx型当成64位,实际上它相当于C#中的32位int型。

以上是关于C# DllImport“调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配 ”的主要内容,如果未能解决你的问题,请参考以下文章

托管调试助手 "PInvokeStackImbalance":的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调

pInvokeStackImbalance 调试异常的解决办法。

如何检查检查PInvoke签名的调用约定和参数与非托管的目标签名是不是匹配?

C#:一个属性用于多个声明 (DLLImport)

C# - DLLImport 和函数默认值

C# 包装类和来自 c++ 的 dllimport