UCHAR→TCHAR変換


神吉  2005-12-22 01:35:26  No: 60022

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

VC++.NET2003  XP  MFC使用


Blue  2005-12-22 01:51:02  No: 60023

TCHAR型は

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

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

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

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


Blue  2005-12-22 01:53:13  No: 60024

あ、逆でした。 orz

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


神吉  2005-12-22 03:11:51  No: 60025

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

Unicodeとなっていました。

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


Ban  2005-12-22 03:21:25  No: 60026

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


Blue  2005-12-22 03:26:32  No: 60027

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

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

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

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

見たいにできますから。


Ban  2005-12-22 03:34:06  No: 60028

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


Blue  2005-12-22 03:41:36  No: 60029

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

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


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

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






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