質問: 上記のサンプルで二番目のリソースがエラーになる。 ``` /*リソーススクリプト*/ KITTY DIALOG 10 , 10 , 100 , 50 FONT 12 , "MS ゴシック" CAPTION "Magical nyan nyan TARUTO" { LTEXT "終了します\nよろしいですか?" , -1 , 5 , 5 , 90 , 20 PUSHBUTTON "OK" , IDOK , 40 , 35 , 20 , 10 PUSHBUTTON "Cancel" , IDCANCEL , 65 , 35 , 30 , 10 } ``` 上記の6行目のPUSHBUTTONでsynatx errorになります。また、これに付いては、`#include "resource.h"`で `#define IDOK 1001` の様にすると取り敢えずは動きますが。今度は、OKボタンを押してもIDOKを認識して来れません。 なお、これに関しては7行目の"Cancel"に付いてもsyntax errorになります。何が悪いのでしょうか。 済みません。悪い個所と正しい記述を回答願います。 宜しくお願いします。
回答: > > `#include "resource.h"`で `#define IDOK 1001`の様にすると取り敢えずは動きますが。 > > > Windows SDKでは`IDOK`は`1`に、`IDCANCEL`は`2`に予約されています。これらの定数を手動で`#define`しても誤りではありませんが、SDKが提供するヘッダファイル`winres.h`を`#include`した方がよいです。 > > 今度は、OKボタンを押してもIDOKを認識して来れません。 > > > リソース上でOKボタンに割り当てたID(あなたのコードでは`1001`)と、WindowsがOKボタンに期待するID(前述した`1`)が不一致になっているためです。