
お世話になっております。
現在、VC++6.0にてアプリを開発中です。
そこで、下記エラーが発生し、処理がうまく行きません。
エラーの内容と、対策をお教え下さい。
[エラー内容]
Debug Error!
Program:xxxxxxxxx.exe
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)
エラー発生の場所は、GetProcAddressで、DLLの関数のアドレスを取得し、その関数をコールした結果で起こっています。
DLL内部にログ出力を入れた結果、DLLの関数自体は正常終了しています。
DLLの関数を取得している部分は下記の通りです。
typedef int (APIENTRY *LPGetRouteList)(WORD wdIn1, WORD wdIn2, WORD wdin3);
・
・
・
LPGetRouteList lpGetRouteList;
・
・
・
lpGetRouteList = (LPGetRouteList)GetProcAddress(hHandle,"GetRouteList);
関数を使用している部分は、下記の通りです。
int iRet = 0;
・
・
・
iRet = lpGetRouteList(wdA, wdB, wdC); <- ここでエラーが発生
DLLの関数は以下の通りです。
extern WORD APIENTRY GetRouteList(WORD wdIn1, WORD wdIn2, WORD wdIn3)
{
WORD wdRet = 0;
・
・
・
return(wdRet);
}
以上、長文で見づらいと思われますが、なにとぞ宜しくお願いします。
No.1ベストアンサー
- 回答日時:
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.
ESPの値が関数呼出を通じて正しく保存されなかった.
これは通常ある呼出規約で宣言された関数を
それとは異なる呼出規約の関数ポインタで呼び出した結果である.
したがって、
DLL側で本当にAPIENTRYがついているかをチェックし、
あとは関数の戻り値がintとWORDで不一致なのをWORDに統一して試してください.
参考URL:http://ray.sakura.ne.jp/asm/9.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DLLファイルの逆コンパイラにつ...
-
c言語
-
略語の読み方について
-
MACで動く実行ファイルをWindow...
-
C言語 バッファについて。
-
Windows Formアプリからコンソ...
-
visual studio 2022でのC#プロ...
-
C言語の関数のextern宣言
-
プログラマー達は何故、プログ...
-
C#でTreeViewのCheckBoxのサイ...
-
Python、プログラミングについ...
-
Notepad++の関数リスト表示でC...
-
C言語について。
-
VisualStudioでC++クラスを追加...
-
Cのコンパイルでコメントアウト...
-
大量のデータを読み込んで表示...
-
コンソールアプリを作成するの...
-
C#でログファイルにファイルパ...
-
C言語 配列と関数の練習問題
-
Notepad++の関数リスト表示の変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# try-catch でcatchに飛ばす方法
-
EXECLマクロでshapeがグルーフ...
-
FileCopy時のエラー
-
CreateObject("Excel.Applicati...
-
ASP 0x80004005 クライアント...
-
このページの状態情報は無効で...
-
オラクル接続をopenしようとす...
-
VB6でRDOに接続できない
-
オーバーフローが発生します
-
fopenでエラーとなる
-
インストールエラーが解決できない
-
内部関数のエラーを外部に
-
エラー 'ASP 0115'
-
エラー内容について
-
IIS7.5の設定の仕方
-
ADSIについて
-
Outlookで添付ファイルの有無を...
-
winsock通信時エラーの回避
-
インクルードしたファイルの関...
-
ペ-ジでエラ-が発生しました
おすすめ情報