- C#引用C++的dll文件,运行出现报错:
托管调试助手 "PInvokeStackImbalance":“对 PInvoke 函数“Cuankou!Cuankou.Form1::Add”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。”
- 解决办法:
在DllImport中加入CallingConvention参数就行了
[DllImport("plus.dll", EntryPoint="Add", CallingConvention = CallingConvention.Cdecl)]
public static extern int Add(int a, int b);