【问题标题】:Convert CString to std::wstring将 CString 转换为 std::wstring
【发布时间】:2011-01-03 17:12:17
【问题描述】:

如何从CString 转换为std::wstring?

【问题讨论】:

标签: c++ string wstring


【解决方案1】:

将CString 转换为std::wstring:

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

反之,使用c_str():

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

【讨论】:

    【解决方案2】:

    试试这个:

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

    【讨论】:

    • 为什么要使用 C 转换?我的一个同事曾经处于他必须找到明确的演员表的位置,因为其中一些不能在他需要将 4MLoC 项目移植到的平台上工作。他赞扬了所有使用 C++ 显式转换的人(你可以用 grep 查找它们)并努力禁止所有 C 风格的转换,因为它们很难找到。
    【解决方案3】:

    这应该像CString 定义了operator LPCTSTR() 一样工作:

    CString s;
    std::wstring s1 = s;
    

    【讨论】:

      【解决方案4】:
      CString s = _T("Привет");
      USES_CONVERSION;
      std::wstring ws(A2W((LPCTSTR)s));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多