• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CString ←→ BSTRの変換について)

CString ←→ BSTRの変換について

このQ&Aのポイント
  • CString ←→ BSTRの変換について解説します。UTF8データの場合に文字化けする問題についても対策方法を紹介します。
  • VC++7(.net 2003)+MFC+WinXP環境でのCString ←→ BSTRの変換について解説します。UTF8データの場合の文字化けに関する問題も取り上げます。
  • CStringとBSTRの相互変換について解説します。UTF-8データの場合に文字化けする問題の対策方法も紹介します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

CString ←→ BSTRの変換以前に >CString str = CString(pDist); の時点で文字化けしてるんじゃないでしょうか? int nSize = 0; BYTE *pSource = (BYTE *)"○<"; // ASCII → CString TRACE( "ASCII → CString\n " ); CString strA = CString( pSource ); TRACE( "%s\n ", strA ); for( int count = 0; count < strA.GetLength(); count++ ) { TRACE( "%02X ", strA[ count ] ); } TRACE( "\n\n" ); ConvSJistoUtf8( pSource, ( BYTE * )NULL, &nSize ); BYTE* pDist = new BYTE[ nSize + 1 ]; ZeroMemory( pDist, nSize + 1 ); ConvSJistoUtf8( pSource, pDist, &nSize ); // UTF8 → CString TRACE("UTF8 → CString\n "); CString str = CString( pDist ); TRACE( "%s\n ", str ); delete []pDist; pDist = NULL; for( int count = 0; count < str.GetLength(); count++ ) { TRACE( "%02X ", str[ count ] ); } Shift-JIS か UTF-16 で初期化しないとダメなのでは?

w0a15455
質問者

お礼

作っていただいたサンプルで解決です。 ありがとうございました。