dynamic DLL 呼叫錯誤 -The value of ESP was not properly saved across a function call
阿新 • • 發佈:2019-02-02
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)();