VSE2012がどんな感じかは前回ので分かったので、二回目以降は「空のプロジェクト」でプロジェクトを作り、一回目で自動的に作られた基本コードと以下の教本から必要なコードをコピー&ペーストしながらクラスを中心にしたWindowsプログラムの流れを備忘録では追ってみようかと思います。
教本としては、「デスクトップマスコットを作ろう!!」という本が自分が読んだ本の中では、比較的シンプルにC++とWindowsSDKを使ってアドベンチャー系ゲームの雛形を解説しているので、これを利用することにしました。
Amazon でのレビュー記事で述べられているように入門書としていい本かといわれると「?」な感じの本ですが、それでも一通りの流れは一冊の本の中で説明されているのと、directxやMFCを使ってないところやプロジェクトを構成するファイル数もなんとかなりそうな数で済んでいるので、とっつきやすい方の本ではないかと思います。
今回のコードですが、教本の方でメインとなるファイルの mascot.cpp を最低限の構成に組み替えてみました。
内容的には前回の内容「Hello World!!」をmascot.cpp に適用してみただけのものです。
注釈としては、40行目からのところで、教本では領域外に出して非表示状態にしてある親窓を見える位置に置きなおしたのと、初期設定データの取り込みに始まる準備処理をごっそり削り落としました。
MainWindow=CreateWindowEx(0, MainWndClassName, MainWndClassName, WS_OVERLAPPEDWINDOW, 0, 0, 800, 600, NULL, NULL, Instance, NULL); ShowWindow(MainWindow, SW_SHOW);
「猫でもわかるプログラミング」の 「イントロダクション」のコードの形に近くなりました。
あと引っ掛かった点は、制作メモ.txtにも書いてますが、
[引っ掛かったところ]
WNDCLASS の登録のところで、構造体のメンバlpszClassNameがデフォルトだと
(LPCWSTR)型を求めてくるのだが、キャストで対処するとタイトルバーの文字が化ける。
(引用)
プロジェクトのプロパティで「構成」が「Unicode文字セットを使用する」とか書いてあると思うんだけど
「マルチバイト文字セットを使用する」とする。
http://yuxx.net/1081/computer/programming/win32-sdk
にあるように、コード系を変えてあげると文字化けは回避できる
コメント