更清洁的方法从CStringW转换为std :: string?

ada*_*m_0 1 c++ string

我想出了一个有点令人费解的方式将a转换CStringW为a std::string,但我想知道是否有一种更清晰的方式:

CStringW cwstr;
std::wstring stdwstr = cwstr;
std::string stdstr = CW2T(stdwstr.c_str());
Run Code Online (Sandbox Code Playgroud)

Nic*_*yer 6

你可以剪掉中间产品std::wstring:

CStringW cwstr;
std::string stdstr = CW2A(cwstr);
Run Code Online (Sandbox Code Playgroud)

另请注意,您希望CW2A宏的正确性. CW2T转换为TCHAR字符串,所以你发布的代码只编译的ANSI版本(这里TCHARchar).