快好知 kuaihz

C#调用DLL错误:PInvokeStackImbalance。

分两种情况:

静态调用时,需要在函数声明语句中加入CallingConvention = CallingConvention.Cdecl

如下所示:

[DllImport("TestDLL.dll", EntryPoint = "Add", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]

public static extern int Add(int a, int b); 

动态调用DLL时,需要修改生成DLL的源码。 在函数前面加上 __stdcall。

如下所示:

int _stdcall Add(int a,int b)

{

 cout << "TestDll"<<endl;

 return a + b;

}

这样就解决了PinvokeStackImbalance问题

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:C#  C#词条  PInvokeStackImbalance  PInvokeStackImbalance词条  调用  调用词条  错误  错误词条  DLL  DLL词条  
综合数码问答

 如何提高视频质量

下载视频编辑应用程序使用H.264编码解码器把视频转换为MP4进行后处理使用Warpsharp提高视频质量使用模糊滤镜、柔化滤镜或平滑滤镜调整光亮度、对比度、色...(展开)

综合

 电脑中有哪些必不可少的软件?

电脑上总是少不了要安装各种各样的软件,有些软件只能在电脑上停留一会,有些即使是换了电脑,也会第一时间装上,下面我们就来看看电脑上有哪些必备的软件。1、Snipa...(展开)