VC PlusPlus:任意の名前のリソースファイルを保持する・複数保持するプロジェクトの作り方

提供:yonewiki

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で英語版のアプリケーションを作ることができます。


 この先の説明についてはMUIを使ったリソースの言語選択の記事で記述したいと思います。

 

VC Cpp記事に戻る。