お世話になっております。
現在、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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FileCopy時のエラー
-
C# try-catch でcatchに飛ばす方法
-
インクルードしたファイルの関...
-
CentOS6でyumコマンドやrpmコマ...
-
エラー内容について
-
CreateObject("Excel.Applicati...
-
WinXPProにVC++6.0をイン...
-
fopenでエラーとなる
-
エラー 'ASP 0115'
-
winsock通信時エラーの回避
-
if文を何度も続けていて途中か...
-
IIS7.5の設定の仕方
-
VBSからのサーバサイドのEXEの実行
-
エクセルVBA 宣言Dimの場所
-
名前が二重に定義されています
-
vbscriptの変数宣言
-
VB6でのPL/SQLの実行について
-
ASP内で他のASPファイルを読み...
-
AutoPostBackにしているが、う...
-
SqlDataSource SelectCommand ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# try-catch でcatchに飛ばす方法
-
FileCopy時のエラー
-
fopenでエラーとなる
-
CreateObject("Excel.Applicati...
-
【C#】アップロード時に「アプ...
-
このページの状態情報は無効で...
-
EXECLマクロでshapeがグルーフ...
-
オーバーフローが発生します
-
エラー 'ASP 0115' について
-
エラー 'ASP 0115'
-
VBSからPDFファイルを開きたい...
-
winsock通信時エラーの回避
-
エラー内容について
-
SPI通信プロトコル
-
Outlookで添付ファイルの有無を...
-
ASP.net の OnClientClick
-
ASP.NETで使用しているJavascri...
-
ADSIについて
-
[VB6.0] Inet OpenURLのエラー検出
-
VBA RemoveDuplicatesで「アプ...
おすすめ情報