お世話になっております。
現在、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);


}


以上、長文で見づらいと思われますが、なにとぞ宜しくお願いします。

A 回答 (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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

  • 基本情報技術者試験の言語ってどうやって選ぶ?

    SEを目指す場合、基本情報技術者試験を経て実務に就いた人も多いのではないでしょうか。教えて!gooにはSEを目指している質問者からこんな質問が寄せられました。 「基本情報技術者試験のC言語とJavaの違い?」 将...

  • エルフ田さん:第70話「絵と向き合うということ」

    エルフ(ファンタジーとかに出てくる長寿の種族)の「エルフ田」と、ただの人間である女子社員2人による日常ギャグ。エルフならではのズレたツッコミでバシバシ人間界の話題を斬っていきます。

  • たまランチ:第46話「エビチリ」

    外ランチを愛してやまない元気な女子社員・たまちゃん(26)。オシャレなお店より「安くておいしい」お店が大好き! そんな女子力低めなたまちゃんの、色気より食い気な日々をつづります。

  • 女子必見!2016年のトレンド水着最新ナビ

    夏目前、今年もデパートでは水着がお目見えするようになった。「教えて!goo」には、スタイルに自信の無いという女性から「どんな水着を買えばいいのか わかりません」という質問が。これに対し、「ワンピースは、生...

  • ポイっと捨てる前に…卵の殻でふきんを漂白できるか実験してみた

    毎日のように出るゴミのひとつに卵の殻がある。捨てるたびにこれが何かに使えないかと思っていた。そこで「教えて!goo」で「卵の殻の処分について」という質問を発見。さっそく、のぞいてみると卵の殻の再利用につ...

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ