
お世話になっております。
現在、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ランキング
-
ペ-ジでエラ-が発生しました
-
VBAでIE操作ができない ...
-
エラー内容について
-
メール受信がうまくいかない
-
インストールエラーが解決できない
-
IIS6 ASP Oracle接続
-
ASP + MDBで発生したエラーが解...
-
cmd.exe' の起動中にエラーが発...
-
VB6 internet transferの使い方
-
仮想メモリ??このエラーはど...
-
エクセルVBAで変数初期値を...
-
ASPのテスト開発環境について
-
10万回でも動くようにするには?
-
Cプログラム UDP送信の送信...
-
ACCESSのAutoKeysマクロでアク...
-
SSIでASPを実行したいのですが...
-
ネットワーク上のPCのIPとホス...
-
sessionタイムはいつから
-
C#エンジニアがASP.NETの世界に...
-
ASPの実行タイミングを設定したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# try-catch でcatchに飛ばす方法
-
FileCopy時のエラー
-
EXECLマクロでshapeがグルーフ...
-
fopenでエラーとなる
-
CreateObject("Excel.Applicati...
-
ASP 0x80004005 クライアント...
-
ADSIについて
-
winsock通信時エラーの回避
-
Outlookで添付ファイルの有無を...
-
CreateProcessでアプリケーショ...
-
SQLサーバーへの接続に 接...
-
ASP.NETで使用しているJavascri...
-
オーバーフローが発生します
-
oracleを利用できません。(glob...
-
ASP.net の OnClientClick
-
オブジェクト生成エラー
-
このページの状態情報は無効で...
-
イベントID 2002について
-
オラクル接続をopenしようとす...
-
Sendmail、エラーメールの制御(...
おすすめ情報