VC PlusPlus:任意の名前のリソースファイルを保持する・複数保持するプロジェクトの作り方
VC Cpp記事に戻る。
概要
VC++プロジェクトのリソースは通常、UIで操作する限りにおいては、プロジェクト名.rcというファイル名のリソーススクリプトを一つ保持しますが、プロジェクトファイル(*.vcxproj)のテキストを直接編集することにより複数のリソーススクリプト(*.rc)を保有することができます。リソースの自動発番のようなシステムが少し使いづらくなるので、IDが重複するとエラーの元になるので、あまりお勧めはできませんが、ビルドするPCのOSの地域・言語設定に従ってリソースを選択したりすることもできます。
では、試しにやってみましょう。まず、既存のリソーススクリプトが必要で、既存のスクリプトと同じフォルダにコピーして名前を変えてみましょう。ConsoleResource2.rcとでもしてみましょうか。
そしてプロジェクトファイルの以下のような部分を探します。
<ItemGroup>
<ResourceCompile Include="ConsoleResource.rc" />
</ItemGroup>
となっている部分を以下のように二つ分追加してみましょう。
<ItemGroup>
<ResourceCompile Include="ConsoleResource.rc" />
<ResourceCompile Include="ConsoleResource2.rc" />
</ItemGroup>
この状態で、プロジェクトを開くと二つのリソースがありますが、resource.hファイルは一つなので、常にConsoleResource.rcかConsoleResource2.rcどちらか片方が開いているという内部的な扱いになります。なので、開いていない方のリソースを編集して保存すると、ダイアログボックスが表示されます。IDに対する数値の発番の管理も不十分になります。気を付けて操作しましょう。このように無駄に2つのリソースがある状態では使いにくいだけで2つのリソースファイルを保持する利点はほとんどありません。
もう少し、応用ができて、自分が使っているPCの言語、地域の設定によってリソースファイルの選択を切り替えるという方法です。IDが重複しても実際は一つのリソースファイルだけを使って、ビルドするので、エラーにもなりません。PCの設定によって、ビルドする対象がかわり、英語版のリソースを使って英語版のアプリケーションを生成したり、日本語版のリソースを使って日本語版のアプリケーションを生成したりできますし、地域の設定をクロスさせることで、日本語版のPCの設定だけど、英語版のリソースが選択されるようにして、日本語版PCで英語版のアプリケーションを作ることができます。
VC Cpp記事に戻る。