我想出了一种复杂的方法来将CStringW转换为std::string,但是我想知道是否有比以下更干净的方法:

CStringW cwstr;
std::wstring stdwstr = cwstr;
std::string stdstr = CW2T(stdwstr.c_str());

最佳答案

您可以剪掉中间的std::wstring:

CStringW cwstr;
std::string stdstr = CW2A(cwstr);

另请注意,您需要CW2A宏来确保正确性。 CW2T转换为TCHAR字符串,因此您发布的代码只能针对ANSI构建进行编译(其中TCHARchar)。

10-08 05:19