我有一个 C++ 中的 MFC 应用程序,它使用 std::string 和 std::wstring,并且经常从一个转换到另一个,还有很多其他的废话。我需要将所有内容标准化为单一格式,所以我想知道是否应该使用 CString 或 std::wstring。
在应用程序中,我需要从字符串表生成字符串,处理大量需要常量 tchar 或 wchar_t 指针的窗口调用,编辑控件,并与需要 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);