私は_bstr_t
変数bstrErr
を持っていて、CString
変数csError
を持っています。 bstrErr
の値をcsError
に設定するにはどうすればよいですか?_bstr_tをCStringに変換する方法
答えて
は、ちょうどそれをキャストすることはできません:
_bstr_t b("Steve");
CString cs;
cs = (LPCTSTR) b;
私はプロジェクトがUnicodeであるとき、これは動作するはずだと思います。
Unicode用にコンパイルする場合は、カプセル化されたBSTRをCStringに割り当てます。 ANSI用にコンパイルする場合、変換にWideCharToMultiByte()を使用する必要があります。
また、カプセル化されたBSTRは空の文字列に対応するnullでもかまいません。これを気にかけなければ、あなたのプログラムは未定義の振る舞いをします。
CStringにはLPCSTRとLPCWSTRの両方のコンストラクタと代入演算子があるため、WideCharToMultiByteを呼び出す必要はなく、ユニコードモードまたは非ユニコードモードでキャストを間違えることはありません。
あなただけの文字列をこのように割り当てることができます。
csError = bstrErr.GetBSTR();
またはコンストラクタを使用してください。 CString csError(bstrErr.GetBSTR());
私はGetBSTRを使用しています。これは、(LPCWSTR)を使用してbstrErrをキャストするのと同じことですが、わかりやすいようにキャストします。
BSTR myBSTRVal;
CString BSTRasCString("")
char szValue[MAX_PATH] = "";
// This will map the BSTR to a new character string (szValue)
WideCharToMultiByte(CP_ACP, 0, myBSTRVal, -1, szValue, sizeof(szValue), NULL,
NULL);
BSTRasCString.Format("%s", szValue);
BSTRasCString.TrimLeft();
BSTRasCString.TrimRight();
私は、コード以上のものを含むべきである答えることができます。あなたは何を変えたのですか?なぜあなたはそのようにしたのですか? - レビューより –
- 1. void *をCStringに変換する方法
- 2. C++ LibCurl - CStringコードをCStringに変換する
- 3. cstringをcamelcaseに変換する
- 4. MFC CStringを符号なし整数に変換する
- 5. cstringをpython文字列オブジェクトに変換する
- 6. CStringを文字配列に変換しますか?
- 7. CStringで文字の最初のオカレンスのみを置き換える方法は?
- 8. cstringを空にする
- 9. バックグラウンドでmp3をflvに変換する方法:変換エラー
- 10. サブストーリーをカスタムに変換する方法
- 11. アクティビティをイメージに変換する方法
- 12. IQueryableをDataTableに変換する方法
- 13. int []をuint8 []に変換する方法
- 14. イメージをスライドショーに変換する方法
- 15. シングルチャートをダブルに変換する方法
- 16. org.jdom.DocumentをStringに変換する方法
- 17. パッケージをユニットに変換する方法
- 18. PDFをHTMLConversionに変換する方法
- 19. NSUUIDをNSDataに変換する方法
- 20. UCHARをバイナリに変換する方法
- 21. IQueryableをEntityCollectionに変換する方法
- 22. MultipartFileをバイトストリームに変換する方法
- 23. telnetをSSHに変換する方法
- 24. mySQLをPDOに変換する方法
- 25. SpannedStringをSpannableに変換する方法
- 26. JPanelをpdfに変換する方法
- 27. データテーブルをオブジェクトに変換する方法
- 28. オブジェクトをintに変換する方法
- 29. サブフォルダをparamsに変換する方法
- 30. イメージオブジェクトをバイナリブロブに変換する方法
おかげNeeul その作業 – subbu