いきなりでした。
本に載っている、一番初めのプログラム。
何もしない、ただ、ウィンドウを表示するだけのプログラム。
なのに、エラー。
本と見比べてみても、どこにも間違いはなし。
CreateWindow関数の第1引数の型が違うとのこと。
引数はLPCTSTR型。文字を入れたのはchar型変数。
以前、ボーランドのコンパイラで作ったときは問題なかったのですが、Expressではエラーとなるようです。
さて、LPCTSTR型って、なんでしょう?
WinMain関数の第3引数、LPSTR型は文字列へのポインタと書いてあります。
が、LPCTSTR型については、何も書いてありません。似た名前だし、文字列型の1種であるとは思うものの、違いは何なのか、まったくわかりません。
調べてみると、
"LPSTR"→"char*"
"LPCTSTR"→"CONST TCHAR*"
とのこと。"LPCTSTR"→"CONST TCHAR*"
TCHARは、UNICODE対応の環境ではWCHARとして、そうでなければcharとして扱われる型。
つまり、
"LPCTSTR"→"WCHAR"or"char"
となっているところを、
"char"→"WCHAR"or"char"
としてしまっていたわけです。
そんなわけで、char型をTCHAR型に変更。
これで、コンパイルできました。
いまさらながら、exeファイル作成は"Debug"と"Release"のモードごとに設定されていることに気付く。
つまり、"Debug"と"Release"を切り替えると、設定も切り替わるということ。
0 件のコメント:
コメントを投稿