お世話になっております。
現在、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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- オープンソース Vue+Laravelのデザインテンプレートのサンプルが起動できない 1 2022/05/18 21:52
- その他(プログラミング・Web制作) AndroidStudio エラー と インストール の件 1 2023/06/27 12:28
- Visual Basic(VBA) Wordマクロで指定したフォルダ名に保存する方法について 8 2022/12/13 11:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ArduinoのジャイロモジュールMP...
-
chatgptでつくってもらったコー...
-
プログラミング言語の制作方法...
-
だいがくの電し書籍で
-
こんなことてしますか??
-
Notepad++の関数リスト表示の変...
-
MACで動く実行ファイルをWindow...
-
C言語をコンパイルするとコンピ...
-
WindowsのCapsLock(キャップス...
-
Notepad++の関数リスト表示でC...
-
Linuxでの開発環境構築や設定の...
-
どなたかこのプログラミングを...
-
卒業研究でよく分からないとこ...
-
gccを行ってもexeファイルが生...
-
これなにがちがうんですか??
-
終端記号、非終端記号とは
-
C言語 解答について。
-
C言語初心者です、、、お助けく...
-
mallocについて
-
[C言語]fputsとfprintfの違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# try-catch でcatchに飛ばす方法
-
FileCopy時のエラー
-
エラー 'ASP 0115' について
-
EXECLマクロでshapeがグルーフ...
-
CreateObject("Excel.Applicati...
-
VBSからPDFファイルを開きたい...
-
winsock通信時エラーの回避
-
ASP.NET C# ローカルのパスが呼...
-
Outlookで添付ファイルの有無を...
-
エラー 'ASP 0115'
-
WinXPProにVC++6.0をイン...
-
IIS7.5の設定の仕方
-
fopenでエラーとなる
-
エラー内容について
-
ASPプログラミングでADODB.C...
-
ASP.NETで使用しているJavascri...
-
ASPからWscriptを利用して外部...
-
オブジェクト生成エラー
-
VB6でRDOに接続できない
-
オラクル接続をopenしようとす...
おすすめ情報