Win32 フリー開発環境
(Visual C++ 2005 Express Edition + Platform SDK 編)
(2007/12/2〜)
まずは Visual C++ 2005 Express Edition 日本語版 から、好みの方法でインストールします。ここでは ISO イメージからインストール CD を作成した場合を前提としています。
CD をセットすると、自動的にインストーラが起動します。起動しない設定にしている人は、CD ドライブ内の setup.exe を実行してください。あとはインストーラの指示に従っていくだけですので、特に難しい部分は無いと思います。
Platform SDK のインストール
マイクロソフトのサイト ( Visual C++ 2005 Express Edition と Microsoft Platform SDK を一緒に使う ) でも解説されていますが、ここではそのサイトで紹介されている SP1 より少しだけ新しい Windows Server 2003 R2 SDK を導入することにしてみます。Visual C++ 2005 Express Edition 同様、CD からインストールすることにして、Windows Server 2003 R2 SDK - March 2006 Edition ISO Download から ISO イメージをダウンロードします。
こちらも CD の作成が済んだら、セットするだけでインストーラが起動します。やはり起動しない設定の人は Setup.Exe を実行します。インストール先フォルダ名は、少々長いですがデフォルトのまま (C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2) にしておきます。
インストールが終わったら、Visual C++ を起動する前に設定を変更しておきます。
まず、corewin_express.vsprops ファイル (「C:\Program
Files\Microsoft Visual Studio 8\VC\VCProjectDefaults\」にあります)
を編集します。次のように 8 行目の文字列を修正
(黄色の部分を追加)
してください。
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"
次に、AppSettings.htm ファイル (「C:\Program Files\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\1041\」にあります) を編集します。441 行目から 444 行目まで削除 (黄色の部分を追加) してください。
//WIN_APP.disabled = true;
//WIN_APP_LABEL.disabled = true;
//DLL_APP.disabled = true;
//DLL_APP_LABEL.disabled = true;
設定を終えたら Visual C++ を起動します。[ツール(T)]
メニューから [オプション(O)...] を選択し、[オプション]
ダイアログを表示します。左のツリーから [プロジェクトおよびソリューション]
を展開し、[VC++ ディレクトリ] を選択します。右上の
[ディレクトリを表示するプロジェクト(S):]
で [インクルード ファイル] を選択し、Platform SDK
の include ディレクトリ (デフォルトのインストールでは
C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include)
を追加します。先に検索されるよう、[↑]
ボタンで一番上に移動しておきます。

同様に、[ライブラリ ファイル] を選択し、Platform
SDK の lib ディレクトリ (C:\Program Files\Microsoft
Platform SDK for Windows Server 2003 R2\Lib) を追加します。やはり一番上に移動しておきます。

[OK] ボタンを押して設定完了です。
ResEdit のインストール
なかなか良いリソースエディタが見つからなかったのですが、ResEdit Home Page (http://www.resedit.net/) で配布されている ResEdit が非常にカッコ良く (^^;) 、これをここでは標準とすることにしました。日本語が化けたり、ローカライズができない部分があったりしますが、取り敢えず現バージョン (1.3.6) 用の日本語ファイルを作成しましたので、それなりに使えるのではないでしょうか。
ResEdit.zip をダウンロードして解凍すると、次のように展開されます。

同じフォルダに日本語ファイルも展開しておき、フォルダごと C:\Program Files に移動します。移動後、ResEdit.exe と ResEdit.chm のセキュリティ ブロックを解除しておきます。
実行すると、次のように聞いてきますので、[はい]
を選択します。

include ディレクトリの設定画面になりますので、Platform
SDK のinclude ディレクトリを指定します。

[OK] を押すと ResEdit が開始します。が、設定が英語になっていますので、日本語に設定しましょう。[Options]
メニューから、[Preferences] を選択すると、Include
path を設定した同じ画面が出てきます。左側のツリーの
[General] を選択すると、言語とマクロの設定画面になりますので、日本語を設定し、ついでに汎用テキスト
マッピング用のマクロ設定もしておきましょう。

ここでは TEXT としましたが、tchar.h を常時インクルードする人は、_T の方がすっきりしますね。お好きな方をどうぞ。
[OK] を押すと、下記のメッセージが出てきます。言語設定は再起動してから反映されるということですので、[OK]
ボタンを押したら、一旦 ResEdit を終了しましょう。

再度 ResEdit を起動すると、今度は日本語化されているはずです。まだ不完全ですが、言語ファイルで対応可能な部分と、そうでない部分があるので、日本語ファイルの更新だけでは限界があります。早く本家がバージョン
アップされると良いですね。

サンプル プログラムのビルド、実行
早速プログラムを実行してみます。Visual C++
を起動し、[ファイル(F)] メニュー → [新規作成(N)]
→ [プロジェクト(P)...] と選択すると、[新しいプロジェクト]
ダイアログが表示されます。[Win32
コンソールアプリケーション] が選択されていることを確認して、[プロジェクト名]
を入力します。ここでは Test とし、ソリューションのディレクトリは作成しないことにしました。

[OK] を押すと [Win32 アプリケーション
ウィザード] に切り替わります。すぐに [完了]
ボタンを押さず、左側の [アプリケーションの設定]
を選択します。

[アプリケーションの種類] が [コンソール アプリケーション] になっているので、[Windows アプリケーション] を選択し直してから [完了] ボタンを押します。
ビルド、実行するとメニューを持つだけのプログラムが出来上がります。

このプログラムにはリソースとしてメニュー、アイコン、ダイアログなどがありますが、Visual C++ 2005 Express Edition でグラフィカルに編集することはできません。そこで、Visual C++ 2005 Express Edition の中でだけは、リソースを編集する際には自動的に ResEdit が起動するように、*.rc に ResEdit を関連付けしておきます。
具体的には、Visual C++ 2005 Express Edition 左側のソリューション
エクスプローラ内で、リソース スクリプト (例では
Test.rc) をクリックします。すると、[ファイルを開くアプリケーションの選択]
ダイアログが表示されます。うっかりそのまま [OK]
を押して、ソース コード エディタなどに割り当ててしまっても、右クリック
→ [ファイルを開くアプリケーションの選択(N)...]
から同じ画面を呼び出せます。ここで [追加(A)...]
ボタンを押して、ResEdit を追加します。

更に [既定値として設定(D)] で、自動的に
ResEdit が起動するようにできます。

これで、ソリューション エクスプローラで *.rc をダブルクリックすると、ResEdit が起動して、メニューやダイアログを GUI で編集することができるようになりました。
折角 ResEdit を使えるようにしたので、実際にリソースを編集してみましょう。ResEdit では容易にマニフェスト ファイルを追加できるので、ここではデフォルトで生成される [バージョン情報] ダイアログを XP スタイルにしてみます。
まずは Visual C++ のソリューション
エクスプローラで Test.rc をダブルクリックして
ResEdit を起動し、[バージョン情報] ダイアログを編集します。

次に ResEdit のリソース ビューで右クリックし、[リソースの追加...]
→ [Manifest] と選択します。すると、

と聞いてきますので、[はい(Y)] を選択します。更に、

と表示されるので、そのまま [保存(S)] を押します。またまた、

と表示されます。文字が化けているのかボタン上に何も表示されませんが、[相対パス]
が選択されていることを確認した上で、気にせず
(^^;) ボタンを押します。
これでマニフェスト ファイルが追加されました。

ResEdit を閉じて Visual C++ に戻り、ソリューション
エクスプローラでプロジェクト名 (例では Test)
を右クリックして、[プロパティ(R)] を選択します。[構成プロパティ]
より [マニフェスト ツール] → [入力と出力] を選択して、右側の
[追加のマニフェスト ファイル] 欄に、先ほどのマニフェスト
ファイル名 (先ほどの manifest.xml) を入力します。

[OK] ボタンを押してビルドすると、[バージョン情報]
ダイアログに XP スタイルが適用されているのが確認できます。

※ 余談ですが、“追加のマニフェスト ファイル”に追記して初めて適用される場合と、ここに記述しなくてもリソースに含めるだけでスタイルが変化する場合とがあるようなのですが、今のところ違いがサッパリわかりません。因みに手元にある後者のタイプは、Visual C++ 6.0 のマニフェスト付きプロジェクトを 2005 に移行したものなのですが、この欄は空欄です。何か他に設定するオプション等があるのでしょうか・・・。
今後気が向けば、更に DirectX を加えた環境などにも触れていきます (インストールしてディレクトリの指定を行うだけですので、セットアップ自体は簡単です) 。
(2007/11/28)