- - PR -
VC++2005での、CStringからCharへの変換
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-04-13 14:58
VC++2003以前では下記のコードで変換できていたのですが、2005になってから変換ができません、どなたか変換方法のご教授をお願いします。
CString str = _T("test"); char buf[256]; strcpy( buf, str ); 宜しくお願いします。 | ||||
|
投稿日時: 2006-04-13 15:09
TCHARというのはご存知でしょうか?
# _Tマクロを意味も知らず使っているようですね TCHAR.H におけるジェネリック テキストのマッピング VS2005からは、デフォルトの文字セットが Unicode になったため、 TCHARはすべてwchar_t型にコンパイル時に置換されるようになりました。 例)
よって、_Tマクロを使う場合は、TCHARをつかうようにコーディングします。
明に char 型としてつかいたい場合はコード変換しないといけません。 wcstombs_sあたりを使って、Unicodeを変換してみてください。 最初から、マルチバイト文字セットを使いたいのであれば、プロジェクトのプロパティから設定してください。 (この場合だと、なんで_Tマクロなんて使っているのっていうことになりますけど。) 類似スレ http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=345765&SiteID=7 ちなみに、C/C++言語はVBとは違って、識別子は大文字小文字を区別します。 Char とかくと、System::Char構造体(C++/CLI)を指すように誤解されますので注意してください。 [ メッセージ編集済み 編集者: Blue 編集日時 2006-04-13 15:28 ] | ||||
|
投稿日時: 2006-04-13 16:31
ご回答ありがとうございました。
デフォルトの文字セットをプロパティで変更すればよいのですね。 (これが解りませんでした) ある製品の関数の引数にcharを渡さなければいけないので、それで困っておりました。 渡す引数がTCHARなら問題なかったのですが、、。 |
1