Unicodeの文字 が エディターボックスから読めないのですか?

解決


清原  2006-03-11 19:22:32  No: 60911  IP: [192.*.*.*]

Unicodeの文字  が  エディターボックスから読めないのですか?
中国の漢字をタイプして、「??」が表示されます。
リッチエディターボックスを使ってみたら、表示するには表示できるけど、
取得できないんです、

CString str;
GetDlgItemText(ID_EDIT1,str);
GetDlgItem(ID_EDIT1)->GetWindowText(str);

これらの関数を使っても、正しく取得できない、
たとえば「體」この字を入力すると、取得した後、strは  「??」になる

一体どうすればいいのですか、教えてください〜
よろしくお願いします

MFC  VC.net  WinXP jp

編集 削除
επιστημη  2006-03-12 08:55:18  No: 60912  IP: [192.*.*.*]

> これらの関数を使っても、正しく取得できない、
> たとえば「體」この字を入力すると、取得した後、strは  「??」になる

このことをどうやって確認したのですか?
「どこかに表示させて」ならば、そのどこかに直接「體」と書いて正しく表示されることを確認しましたか?

編集 削除
清原  2006-03-13 19:35:47  No: 60913  IP: [192.*.*.*]

僕はWindowsXPにつきの中国語の入力言語に切り替えて、
エディットボックスに入力して、正しく表示されないんです。

ネットで台湾のサイトからコピーしたテキストをエディットボックスに貼り付けても同じです  (また「??」になる)  。

どうやって、ほかの国の文字を正しく表示されるのですか、
そして取得するのですか


> これらの関数を使っても、正しく取得できない、
> たとえば「體」この字を入力すると、取得した後、strは  「??」になる

この前に入力した「體」は中国の漢字だったんだけど、
ここに載せる時、コードが変更されたようだ。

編集 削除
YuO  2006-03-13 21:05:55  No: 60914  IP: [192.*.*.*]

ちゃんとUnicode系のAPIでプログラムを作成していますか?
ANSI系のAPIでプログラムを作成しているのであれば,
ユーザーのコードページに含まれない文字は正しく扱えませんよ。

編集 削除
清原  2006-03-14 19:37:57  No: 60915  IP: [192.*.*.*]

MFCのアプリケーション  ウィザード  で  プログラムを作成していますけど、Unicodeをサポートするには、ほかのすべきことがありますか?

GetWindowTextなどの関数は  Unicodeでもサポートすると
MSDNに書いてあるんですが

編集 削除
清原  2006-03-15 20:12:46  No: 60916  IP: [192.*.*.*]

ネットでくぐったら、解決方法見つかりました。


>■ Unicode対応のプロジェクトにする 

>「プロジェクト」→「設定」→「C/C++」→「プリプロセッサの定義」から
>_MBCSの定義を削除し、代わりに、_UNICODEを定義する。

>「プロジェクト」→「設定」→「リンク」→「アウトプット」の
>「エントリポイントシンボル」にwWinMainCRTStartupと書き込む。
>(これをやらないと_WinMain@16は未解決ですとコンパイルエラーになります)

これで、解決しました。

編集 削除