std::string と std::wstring を使用する C++ の MFC アプリケーションがあり、一方から他方へ頻繁にキャストされ、その他の多くのナンセンスがあります。すべてを 1 つの形式に標準化する必要があるため、CString と std::wstring のどちらを使用するべきか迷っていました。
アプリケーションでは、文字列テーブルから文字列を生成し、定数 tchar または wchar_t ポインターを必要とする多数の Windows 呼び出しを操作し、コントロールを編集し、BSTR を必要とする COM オブジェクトの API を操作する必要があります。
文字列のベクトルもありますが、CStrings のベクトルに問題はありますか?
どちらの方がよいですか?それぞれの長所と短所は何ですか?
例
BSTR から wstring へ
CComBSTR tstr;
wstring album;
if( (trk->get_Info((BSTR *)&tstr)) == S_OK && tstr!= NULL)
album = (wstring)tstr;
wstring から BSTR
CComBSTR tstr = path.c_str();
if(trk->set_Info(tstr) == S_OK)
return true;
文字列リソースから wstring へ
CString t;
wstring url;
t.LoadString(IDS_SCRIPTURL);
url = t;
GetProfileString() は CString を返します。
整数から文字列へのフォーマット:
wchar_t total[32];
swprintf_s(total, 32, L"%d", trk->getInt());
wstring tot(total);