Cabの解凍プログラム
現在Cabの解凍をするプログラムを作っています。
Cabファイル内のファイル数を取得するために、
int WINAPI CabGetFileCount(LPCSTR szArcFile);
というAPIを使おうとしているのですが、
実行中に、デバッグエラーが出ます。
エラーメッセージ
The value ESP was not properly saved across a function call.
This is usually a result of calling a function declared with one calling convention pointer declared with a different calling convention.
ソースは以下のものです。
typedef bool (*TFUNC)(LPCSTR);
void 関数名(HWND hWnd)
{
HINSTANCE hCab=NULL; //cab32.dllのインスタンスハンドル
TFUNC DllFunction;
int FileCount;
//cab32.dllのロード
hCab = LoadLibrary("cab32.dll");
if(hCab == NULL)
{
MessageBox(hWnd,"cab32.dllがありません。","エラー",MB_OK);
return;
}
DllFunction=(TFUNC)GetProcAddress(hCab,"CabGetFileCount");
FileCount = (*DllFunction)("test.cab");
FreeLibrary(hCab);
}
(DLL使用テストのソース)
コンパイラーは"VC++6.0"
OSはWin2Kになります。
わかるかたよろしくお願いします。
お礼
無事解凍できました。 助かりました。 ありがとうございます。