VC++5.0でリソースの[String table]を複数用意し、ソフトの設定により動的に[String table]を切り替えたいのですが可能でしょうか?
[String table]は言語の違いにより複数持つのではなく、一部タイトルなどが違うものを複数持ち、切り替えたいと思っています。
現状では[String table]を複数持つことが出来るのかすら分かりません。。
またリソースの[Version Info]も同様に行いたいのですが、、
どなたかご存知の方がいらっしゃいましたらご教授お願いします。
複数のリソースを持つことはできません。これは仕様の様です。
また、ひとつのリソースに対して同じIDが存在するのもstring tableでは
不都合が生じます。
近い事をやろうとしたら、例えばidが5XXXXXと6XXXXXを用意して、
CString str ;
if(...)
str.LoadString(id) ;
else
str.LoadString(id + 10000 ) ;
みたいな方法は可能だと思います。
マルチはやめよう。
んで…
リソース専用の DLL を切り替えるという手もあるかもしれない。
ご回答ありがとうございます。
やはり複数のリソースを持つことは出来ないのですか、、
仕様ならば仕方ないですね。
>リソース専用の DLL を切り替えるという手もあるかもしれない。
リソース専用のDLLとはどのようなものでしょうか?
プロジェクトに含まれているリソース部分をDLL化するということでしょうか?
こことか。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/_core_create_a_resource.2d.only_dll.asp
http://www.athomejp.com/goldfish/vcused/resource.asp
ありがとうございます。
このサイトを参考に検討してみたいと思います。
リソースをDLL化して動的に切り替える事が可能なら「String table」だけでなく
「Version Info」も同様に切り替えて使用することが可能でしょうか?
> リソースをDLL化して動的に切り替える事が可能なら「String table」だけでなく
> 「Version Info」も同様に切り替えて使用することが可能でしょうか?
可能です。
例えば、Version Info リソースからデータを取ってきて、アプリの「バージョン情報」ダイアログに表示する場合など(動的に利用する場合)には。
exe ファイルのプロパティで見える「バージョン情報」は、exe にくっついてるバージョン情報リソースしか表示されません。
>可能です。
>例えば、Version Info リソースからデータを取ってきて、アプリの「バージョン情報」ダイアログに表示する場合など(動的に利用する場合)には。
>exe ファイルのプロパティで見える「バージョン情報」は、exe にくっついてるバージョン情報リソースしか表示されません。
これが可能であればリソースのDLL化によりやりたいことが解決しそうです。
さっそくDLL化を試してみたいと思います。
ツイート | ![]() |