#defineで宣言したものに、CString型の文字を入れる

[戻る]
potu 2002/10/01(火) 10:24:23
potuです。いつもお世話になっています。

#define _T(xxx)  で宣言したものに、Cstringで宣言したものを入れる、ということはできる
のでしょうか?
できましたら、方法を教えていただきたいと思います。

やりたいことは、英語版OSと日本語版OSのどちらでも、String Table の内容を読んできて
それぞれのOSに合った文字を表示させたいのです。

画面系に関しては、

    1.変数の宣言
    CString cst;

    2.初期化
    cst.Empty();

    3.String Tableの値をロード
    cst.LoadString(Stringtable);

これを、画面に表示させています。

画面系はこれでよいのですが、メッセージボックスのときに困りました。
#define _T(xxx)の中に、上記の手順でとってきた「cst」を入れる方法が思いつきません。
メッセージボックスの中では、「xxx」を表示するので、「cst」の内容を、xxxに入れる必要が
あるのです。
「cst」の内容を、「xxx」に入れる方法を教えて下さい。

わかりづらい質問ですみませんが、どなたかご存知の方はご教授をお願い致します。

環境は、Win2000, VC6.0,MFC使用です。

sugar 2002/10/01(火) 11:07:03
#defineはプリプロセッサです。
アプリケーションをビルドする時点で、定義内容が定まっていなければならないはず。
CString変数の内容は、ビルドしたアプリが実行している最中に定まるもの。
よって、CString変数の内容を#defineするというのは、ありえない話だと思います。

> やりたいことは、英語版OSと日本語版OSのどちらでも、String Table の内容を読んできて
> それぞれのOSに合った文字を表示させたいのです。
>
ローカライズというキーワードで検索すれば、
何か情報が得られると思います。

PAI 2002/10/01(火) 11:10:45
っていうかdefineじゃなきゃいけない理由があるとは思えない。

potu 2002/10/01(火) 11:49:23
[[解決]]
sugarさん、PAIさん レスありがとうございます。

ローカライズを調べてみます。
ムリそうであれば、そのままCStringの値を出すことにします。


いつも、私の分かりづらい質問にレスを頂き、ありがとうございます。m(__)m

古いスレッドには追加発言できません。