- ベストアンサー
CString ←→ BSTRの変換について
- CString ←→ BSTRの変換について解説します。UTF8データの場合に文字化けする問題についても対策方法を紹介します。
- VC++7(.net 2003)+MFC+WinXP環境でのCString ←→ BSTRの変換について解説します。UTF8データの場合の文字化けに関する問題も取り上げます。
- CStringとBSTRの相互変換について解説します。UTF-8データの場合に文字化けする問題の対策方法も紹介します。
- みんなの回答 (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 で初期化しないとダメなのでは?
お礼
作っていただいたサンプルで解決です。 ありがとうございました。