UCHAR→TCHAR変換


神吉  2005-12-21 16:35:26  No: 60022  IP: [192.*.*.*]

失礼したします。
質問なのですが、
UCHAR型からTCHAR型に変換したいのですがどうすればいいのでしょうか?

VC++.NET2003  XP  MFC使用

編集 削除
Blue  2005-12-21 16:51:02  No: 60023  IP: [192.*.*.*]

TCHAR型は

_UNICODE であるとき WCHAR すなわち wchar_t型(unsigned short型)です。
_MBCS    であるとき CHAR  すなわち char型です。

これを踏まえて、キャストを考えると、

_UNICODE であるときに情報が落ちてしまいます。
(_MBCSである場合は普通にキャストできます。)

とりあえず、あなたのプロジェクト(ソリューション?)の設定がどうなっているのか確認してください。
・プロジェクト(ソリューション?)のプロパティの文字セットがUnicodeかどうか?

編集 削除
Blue  2005-12-21 16:53:13  No: 60024  IP: [192.*.*.*]

あ、逆でした。 orz

UCHAR型で使っている情報は何が入っているのでしょうか?
(プロジェクトの設定の情報は必要ですが)

編集 削除
神吉  2005-12-21 18:11:51  No: 60025  IP: [192.*.*.*]

>とりあえず、あなたのプロジェクト(ソリューション?)の設定がどうなっているのか確認してください。
>・プロジェクト(ソリューション?)のプロパティの文字セットがUnicodeかどうか?

Unicodeとなっていました。

UCHAR型の中には、バイナリファイルから取得した文字列がはいっています。

編集 削除
Ban  2005-12-21 18:21:25  No: 60026  IP: [192.*.*.*]

ファイルから取得したバイナリの文字コードはなんですか?

編集 削除
Blue  2005-12-21 18:26:32  No: 60027  IP: [192.*.*.*]

> UCHAR型の中には、バイナリファイルから取得した文字列がはいっています。
UCHAR型には文字列は入れれませんので、
UCHAR型配列でしょうか?

結局のところ TCHAR型変数に入れて何をしたいのでしょうか?

CString型に入れるのでしたら簡単なんですけど。

UCHAR s1[] = "あいうえおabcde";
CString s2( s1 );

見たいにできますから。

編集 削除
Ban  2005-12-21 18:34:06  No: 60028  IP: [192.*.*.*]

UCHARの中身はバイナリファイルから読み出してるそうですから、
中身次第で CString に単純に入れても意味があるかどうか....。

編集 削除
Blue  2005-12-21 18:41:36  No: 60029  IP: [192.*.*.*]

> 中身次第
まぁそうですね。

> 文字列がはいっています。
文字列ではないでしょうね。

編集 削除