![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
EnumWindows( EnumWndProc,(LPARAM) NULL);
この記述の行で下記のエラーが出ます。
宣言は BOOL CALLBACK EnumWndProc(HWND hWnd, LPARAM lParam); としてあります。
error C2664: 'EnumWindows' : 1 番目の引数を 'int (struct HWND__ *,long)' から 'int (__stdcall *)(struct HWND__ *,long)' に変換できません。 (新しい機能 ; ヘルプを参照)
スコープ内でこの名前を持つ関数でターゲット型に一致するものはありません。
キャストすればよいのかと思い下行のようにしました。
EnumWindows((__stdcall *) EnumWndProc,(LPARAM) this);
そうすると次のエラーになります。
error C2059: 構文エラー : '__stdcall'
このエラーを回避するにはどうしたらよろしいのでしょうか。
皆様ののお知恵を拝借させてください。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
EnumWindowsを呼び出す前に
BOOL EnumWindows(WNDENUMPROC lpEnumFunc , LPARAM lParam);
と言うプロトタイプ宣言が必要です。
このプロトタイプ宣言をし忘れると、EnumWindowsの第一引数の関数の呼び出し規則が__stdcallとなり、宣言と一致しなくなります。
>キャストすればよいのかと思い下行のようにしました。
キャストは駄目です。呼び出し規則は変更出来ません。
呼び出し規則を無理矢理にキャストしてしまうと、呼び出し元と呼ばれた関数の整合性が取れなくなり、暴走したり、メモリリークしたり、致命的例外を発生したりしますので、通常はキャストできないようになっています。
この回答への補足
早速の回答ありがとうございます。
試してみたのですが、下記のエラーになってしまいます。
error C2373: 'EnumWindows' : 再定義されています。異なる型修飾子です。
c:\program files\microsoft visual studio\vc98\include\winuser.h(6748) : 'EnumWindows' の宣言を確認してください。
何か他にご回答またはヒントがありましたらよろしくお願いいたします。
その後、別なソースファイルに入れたところエラーが無くなりましたのでとりあえずそちらで対処することにしました。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
バッチからsqlplusの接続エラー...
-
適切な変換関数が存在しない???
-
HEWを使用しているのですが、こ...
-
Excelのエラーで困ってます。
-
multiple definitionというエラー
-
fortranでプログラムを実行する...
-
VB2008で定数に色の設定をした...
-
Handlesについて
-
エラー 'iostream.h' : No su...
-
キーの自動入力
-
ビルド失敗 指定されたファイ...
-
InternetOpengaが使えません・...
-
Visual Studioのstrcpy_sについて
-
error C3867 関数呼び出しには...
-
コールバック関数指定時のエラー
-
OpenCV2.3 のエラー
-
VC++6.0 の/Zm オプションについて
-
CBuilder ver6使用時にエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
バッチからsqlplusの接続エラー...
-
sys/time.hのインクルードがで...
-
デバッグ中のエラーのことで教...
-
HEWを使用しているのですが、こ...
-
コンパイルできません。
-
Handlesについて
-
RightとLeft関数のライブ...
-
visual C++ でビルドの中止がで...
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
BC30002: 型 'ListItem' が定義...
-
ビルドが失敗してしまいます
-
multiple definitionというエラー
-
DLL関数を使ったプログラム
-
レコードセットをcloseする所で...
おすすめ情報