DLL 调用错误 -The value of ESP was not properly saved across a function call.

  DLL 调用错误 -The value of ESP was not properly saved across a function call.

在调用DLL中的函数有时候会出现如下对话框的错误:

Microsoft Visual C++ Debug Library:

Debug Error:
Program: ...
Module:
File: i386/chkesp.c
Line: 42

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.

(Press Retry to Debug the Application)

其解决方法之一是:

在函数调用前加入 WINAPI

 

例如:

typedef BOOL (WINAPI *LoadSDK)();
typedef INT  (WINAPI *BarcodeAnalyzeImage)(LPCTSTR lpszImagePath, long pVal);
typedef INT  (WINAPI *BarcodeResult)(INT nItem, LPSTR lpszBuffer, int nBufferLen);
typedef void (WINAPI *FreeSDK)();

你可能感兴趣的:(c/c++/vc++)