调用DLL函数,出现错误

Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.

1、定义函数指针原型时出错。

        其实函数实现的没有错,但是编译器不认识而已,因为你调用的dll函数是一个远函数,而且是一个C函数,你得告诉编译器它是个c函数才行。那么你就可以在定义该函数的时候加上一句话,FAR PASCAL 或者 __stdcall 这个就OK了。

参考:https://blog.csdn.net/dybinx/article/details/7709822

2、由于dll文件和lib文件不匹配,故会报此类报错;

        lib和dll均可以调用实现代码的调试,但是lib和dll不匹配;只需找到源码重新进行编译即可;

Logo

一站式 AI 云服务平台

更多推荐