string table を動的に切り替えるには?


まいなーすたーす  2005-02-14 18:47:51  No: 56384

VC++5.0でリソースの[String table]を複数用意し、ソフトの設定により動的に[String table]を切り替えたいのですが可能でしょうか? 
[String table]は言語の違いにより複数持つのではなく、一部タイトルなどが違うものを複数持ち、切り替えたいと思っています。 
現状では[String table]を複数持つことが出来るのかすら分かりません。。 
またリソースの[Version Info]も同様に行いたいのですが、、 
どなたかご存知の方がいらっしゃいましたらご教授お願いします。


てつや  2005-02-14 21:07:51  No: 56385

複数のリソースを持つことはできません。これは仕様の様です。
また、ひとつのリソースに対して同じIDが存在するのもstring tableでは
不都合が生じます。

近い事をやろうとしたら、例えばidが5XXXXXと6XXXXXを用意して、
CString str ;
if(...)
   str.LoadString(id) ;
else
   str.LoadString(id + 10000 ) ;
みたいな方法は可能だと思います。


シャノン  2005-02-14 21:28:14  No: 56386

マルチはやめよう。

んで…
リソース専用の DLL を切り替えるという手もあるかもしれない。


まいなーすたーす  2005-02-14 22:46:12  No: 56387

ご回答ありがとうございます。
やはり複数のリソースを持つことは出来ないのですか、、
仕様ならば仕方ないですね。

>リソース専用の DLL を切り替えるという手もあるかもしれない。
リソース専用のDLLとはどのようなものでしょうか?
プロジェクトに含まれているリソース部分をDLL化するということでしょうか?


てつや  2005-02-14 23:40:06  No: 56388

こことか。
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


まいなーすたーす  2005-02-15 00:37:11  No: 56389

ありがとうございます。
このサイトを参考に検討してみたいと思います。
リソースをDLL化して動的に切り替える事が可能なら「String table」だけでなく
「Version Info」も同様に切り替えて使用することが可能でしょうか?


シャノン  2005-02-15 00:51:48  No: 56390

> リソースをDLL化して動的に切り替える事が可能なら「String table」だけでなく
> 「Version Info」も同様に切り替えて使用することが可能でしょうか?

可能です。
例えば、Version Info リソースからデータを取ってきて、アプリの「バージョン情報」ダイアログに表示する場合など(動的に利用する場合)には。
exe ファイルのプロパティで見える「バージョン情報」は、exe にくっついてるバージョン情報リソースしか表示されません。


まいなーすたーす  2005-02-15 01:08:16  No: 56391

>可能です。
>例えば、Version Info リソースからデータを取ってきて、アプリの「バージョン情報」ダイアログに表示する場合など(動的に利用する場合)には。
>exe ファイルのプロパティで見える「バージョン情報」は、exe にくっついてるバージョン情報リソースしか表示されません。

これが可能であればリソースのDLL化によりやりたいことが解決しそうです。
さっそくDLL化を試してみたいと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加