美文网首页
CString和其他类型之间的转换

CString和其他类型之间的转换

作者: 7bfedbe4863a | 来源:发表于2018-01-22 22:29 被阅读0次

之前就想总结一下CString和其他类型之间的转换问题,毕竟每次遇到都再去查真的有点麻烦,正好趁周末把它整理一下

CString转LPSTR
  • 使用CString的成员函数(通用)
    strSrc.GetBuffer(nSize);
    比如说:
        CString strDes = L"";
        CString strSrc = L"abc";
        HRESULT hRst = StringCchCopy(strDes.GetBuffer(strSrc.GetLength()), strSrc.GetLength()+1, strSrc);
LPSTR转CString
  • 可以直接用 =
LPSTR lpStr2 = "hello";
CString strTemp2;
strTemp2 = lpStr2;
  • 用CString的构造
  • 用MultiByteToWideChar:
CString strDes;
LPSTR lpStr = "123";
MultiByteToWideChar(CP_ACP, 0, lps, -1, (LPWSTR)strDes.GetBuffer(sizeof(lpStr )), sizeof(lpStr )+1);
CString转LPCSTR
  • 强制类型转换+CString成员函数
LPCSTR lpStr = (LPCSTR)str.AllocSysString();//这个方法可以成功,但结果只有第一个字符
lpStr = (LPCSTR)str.GetBuffer(str.GetLength());//同上
LPCSTR转CString
  • 使用CString的构造
LPCSTR lpStr = "test";
CString str(lpStr);
CString转LPWSTR
  • 强制类型转换:
    LPWSTR lpStr = (LPWSTR)(LPCTSTR)strSrc;
  • 使用A2W
    这一项之后再加
CString 转LPCWSTR
  • 用CString的成员函数(通用)
    CString strSrc;
    LPCWSTR str = strSrc.AllocSysString();//返回Whart_t*
  • 强制类型转换(适用于Unicode字符集)
CString转CStringA
  • CStringA strA = CW2A(strW,CP_UTF8);

相关文章

网友评论

      本文标题:CString和其他类型之间的转换

      本文链接:https://www.haomeiwen.com/subject/jqoraxtx.html