将CString转换为std::wstring

17

我该如何将 CString 转换为 std::wstring


2
请查看此链接:https://dev59.com/53VC5IYBdhLWcg3wixw0 - codaddict
1
将CString转换为const char:https://dev59.com/questions/yHRA5IYBdhLWcg3wsgLq - Idan K
4个回答

28

CString转换为std::wstring

CString hi("Hi");
std::wstring hi2(hi);

要执行相反的转换,请使用c_str()

std::wstring hi(L"Hi");
CString hi2(hi.c_str());

2

这应该能够工作,因为 CString 已经定义了 operator LPCTSTR()

CString s;
std::wstring s1 = s;

1

试试这个:

std::wstring strString((LPCTSTR)strCString);

5
为什么要使用 C 式转换?我的一位同事曾经处于这样一种情况:他不得不找到显式转换,因为其中一些转换在他需要移植 4MLoC 项目的平台上无法正常工作。他赞扬那些使用 C++ 显式转换(你可以使用 grep 查找)的人,并努力禁止使用所有的 C 式转换,因为它们很难找到。 - sbi

0
CString s = _T("Привет");
USES_CONVERSION;
std::wstring ws(A2W((LPCTSTR)s));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接