• ベストアンサー

C++/CLIのリソースファイルについて

C++/CLIのリソースファイルについて質問です。 環境は、Visual Studio 2005のC++/CLIです。 アセンブリリソースファイル(resx)の文字列リソースをEXEファイルをに含めることは可能でしょうか? 含めるか、含めないかの設定はどこで可能でしょうか? 現在は、EXEファイルと同じ場所にアセンブリリソースファイル(resx)がないと例外が発生します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#251971
noname#251971
回答No.1

通常、resxファイルはコンパイルされてマネージリソースとして 実行ファイルなどに格納されるかと思うのですが、 どのようにresxを扱っていますでしょうか? もしかすると、ResXResourceReader などのクラスを用いて resxファイルの読み込みを行っているのでしょうか? 通常はそのようにはせず、resxファイルをプロジェクトに追加しておけば、 初期設定の状態で resx ファイルはマネージリソースコンパイラが処理してくれるので、 実行ファイルにリソースが含まれるはずです。 あとは、プログラム中で以下のような形でリソースの取得が行えるかと思います。 # 当方、C++/CLIはほとんど触ったことがありませんが、 # 一応 VC++ 2010 Express にて確認しました。 System::Reflection::Assembly^ assembly = System::Reflection::Assembly::GetExecutingAssembly(); System::Resources::ResourceManager^ resources = gcnew System::Resources::ResourceManager("<アセンブリ名>.<マネージリソース名>", assembly); String^ resMsg = resources->GetString("<リソース項目名>"); 文字列リテラル中の<>で囲んだ各部内容は以下のようなものを指定します。 (<>自体は含めません) ・<アセンブリ名>  リソースを含むアセンブリの名称。  通常はプロジェクト名称がアセンブリ名称として使われていると思います。 ・<マネージリソース名>  プロジェクトに追加したresxファイルの名称です。  「Resource1.resx」であれば「Resource1」です。 ・<リソース項目名>  resx内で定義しているリソースの項目名です。

関連するQ&A