C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: UNICODE文字の扱いについて


(過去ログ 56 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■31748 / inTopicNo.1)  UNICODE文字の扱いについて
  
□投稿者/ シープラザ (7回)-(2009/01/28(Wed) 13:31:07)

分類:[C/C++] 

初心者でVC++(2003)の勉強中です。
OSはXPです。

業務で急にVC++をやることになり猛勉強中なのですが、unicode文字の扱いについてわからない事があるので質問させてください。
TextOutでwchar_t型の変数値を表示する方法はどうすればよいのですか?

外部テキストからunicode文字列を取得し下記のようにTextOutで表示しようと思っています。
TextOut(hdc,20,20,aaa,30);

実際のコードでは、デバッグで見ていくとwchar_t型変数に値は取れているようです。
ただTextOutの行になると「'tchar_w'は'LPCTSTR'型に変換できません」というエラーになってしまいます。

試しに
TextOut(hdc,20,20,(LPCTSTR)aaa,30);
というようにキャストを試みるとコンパイラは通るのですが表示される文字が化けてしまいます。
良い解決方法がありましたらご教授ください。

引用返信 編集キー/
■31752 / inTopicNo.2)  Re[1]: UNICODE文字の扱いについて
□投稿者/ 774RR (304回)-(2009/01/28(Wed) 13:38:46)
いろんなやりかたがあるけど
1.
プロジェクトの設定で マルチバイト文字を使用する と UNICODE を使用する の選択ができる
今たぶん マルチバイト になっているので、これを UNICODE にする
2.
TextOut ではなく TextOutW を使う
3.
Unicode → MBCS の変換関数を使って wchar_t から char に変換した後 TextOut する

引用返信 編集キー/
■31753 / inTopicNo.3)  Re[2]: UNICODE文字の扱いについて
□投稿者/ シープラザ (8回)-(2009/01/28(Wed) 13:43:49)
お返事ありがとうございます。

> 2.
> TextOut ではなく TextOutW を使う
できました!

変数の変換ばかりに目が行ってしまい、「TextOut以外の出力」という考え方がすっぽり抜けてました。
お陰様で希望通りの出力ができました。

有難うございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -