ウィンドウプロシージャ関数を以下の様に配列で定義したいのですが、コンパイルエラーとなってしまいます。この問題の解決方法をご存知の方がおりましたらご教示ください。
LRESULT CALLBACK WndProcA(…) {
return DefWindowProc (…) ;
}
LRESULT CALLBACK WndProcB(…) {
return DefWindowProc (…) ;
}
LRESULT CALLBACK WndProcC(…) {
return DefWindowProc (…) ;
}
int WINAPI WinMain(…){
static WNDPROC (*finc[])() = {
(WNDPROC)WndProcA,
(WNDPROC)WndProcB,
(WNDPROC)WndProcC
};
No.2ベストアンサー
- 回答日時:
いま確認できる環境がありませんが。
WNDPROC (*finc[])()
だと
『「WNDPROC 名前()というプロトタイプの関数」へのポインタ』の配列
である、配列fincの宣言になります。
よって、fincの各要素(finc[0],finc[1]...)は「引数無し、戻り値WNDPROCの関数へのポインタ」です。
それを、(WNDPROC)WndProcA,等と、WNDPROC型で初期化しようとしています。
「引数無し、戻り値WNDPROCの関数へのポインタ」 と 「WNDPROC型」は別のものでは?
まずは、具体的にどんなエラーメッセージになっているか、書いてください。
「WNDPROCはWNDPROC (*)()に変換できない」とかいうものではないですか?
この回答への補足
考察ありがとうございます。エラーメッセージは先の回答者さんに補足コメントしました。
やりたいことは、複数ウインドをループで作りたくウィンドウプロシージャ関数を配列にする必要があるち考えました。しかし、その後下記のように関数にすれば代用できると思いつき、試したところうまく実装できました。
WNDPROC getWndProc(int no){
WNDPROC f;
switch(no){
case 1:f = WndProcA;break;
case 2:f = WndProcB;break;
case 3:f = WndProcC;break;
}
return f;
}
よって、本件の質問はCloseとさせていただきます。
お騒がせしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語のポインタに直接アドレス...
-
fopne で失敗する原因
-
init関数の意味
-
セグメントエラー
-
戻り値で構造体を返すことは可...
-
ExcelVBAでのkernel32(64bit)
-
TCHAR文字列内の検索について
-
参照型で受け取った引数をポイ...
-
デバイスハンドルとは?
-
GetPixelについて
-
どうしてエラーになるかわかり...
-
配列とポインタについて、 abc...
-
c言語で任意のファイルから読み...
-
cv::Mat から vectorにコピー
-
VB6でのgethostbyaddrの使用方...
-
LPSTR型の初期化について
-
ポインタ…(゜Д゜≡゜Д゜)?
-
GetWindowLongA( hWnd,GWL_USER...
-
I/Oレジスタアドレスを関数に引...
-
パスからファイル名を抽出
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインタに直接アドレス...
-
init関数の意味
-
セグメントエラー
-
fopne で失敗する原因
-
戻り値で構造体を返すことは可...
-
Run-Time Check Failure #3とい...
-
ExcelVBAでのkernel32(64bit)
-
LPSTR型の初期化について
-
C言語でのconstを返す関数
-
ハンドルはポインタか
-
【C言語】戻り値が構造体の関数
-
nullポインタを逆参照とは?
-
基本アルゴリズムの『返す』の...
-
参照型で受け取った引数をポイ...
-
#define NULL ((void *)0) の弊害
-
アプリを32bitから64bit移行
-
ハンドル、アドレス、ポインタ...
-
デバイスハンドルとは?
-
C++で関数ポインタから関数名を...
-
Cで作成したDLL関数をVBから呼...
おすすめ情報