相変わらず「WinNT4.0sp6英語版 + VC++5.0sp3 + MFC」という環境です。
訳あって、プログラム中で使用している文字列という文字列をリソースにまとめる事にな
りました。数が多いため、いちいちVC++のリソースエディタでStringTableを編集するの
もかったるく、普通のテキストエディタでxxxx.rcとresource.hを編集していました。
すべての文字列をStringTableに登録し終えて、VC++でworkspaceを開いてStringTableを
確認してみると、「This table exceeds 6144 items and will be truncated.」というエ
ラーメッセージが表示され、せっかく登録した文字列が跡形もなく消えているではありま
せんか。
6144個以上の文字列をStringTableに登録したい場合、どのようにすればいいのでしょう?
どこかに上限値を変えるような技がありましたっけ?
WindowsXP home,VC++6 sp6, SDKでですが、
実際に6144を越える文字列群をrcファイルに加え、またresource.hにも対応する
記述をしてから、VC++のリソースビューでリソースのアイコンをダブルクリック
して開いてみると、確かに「6144以上なので切り捨てます」という旨のメッセージ
が出ました。が、
テキストエディタでrcファイルを開いてみると6144以降は切り捨てられてはおらず、
またプログラム中でLoadString()を使ってロードしてみても正しく取得できました。
というわけで6144個以上はVC++で編集はできない、というだけのようです。
…というか編集できないのが困るということですね。
すいません私にはわかりませんです(汗
ただの考え方ですけど、DLLにしてしまってはどうでしょうか
ぬるぽっ
自作しればいいよ。
結局、「StringTableを利用する事にこだわる必要はない」ということですね。なんか
吹っ切れました。ありがとうございました。
以下、愚痴。
それにしてもリソースエディタで表示できないのにビルドはちゃんと通るというのはどう
なんでしょう? 登録文字列数に上限があるにしてもリソースエディタとビルドとで同じ値
を上限にして置いてほしいです。
...というか、ビルドにも登録文字列数の上限はあるんでしょうか?
チェックし忘れ。