调用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.youkuaiyun.com/dybinx/article/details/7709822
2、由于dll文件和lib文件不匹配,故会报此类报错;
lib和dll均可以调用实现代码的调试,但是lib和dll不匹配;只需找到源码重新进行编译即可;