CString和其他类型之间的转换

之前就想总结一下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);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在日常的C++编程中,使用频率最多的应该是Unicode文件的读写,今天我们用VS2015来制作个属于自己的简单类...
    天花板阅读 1,138评论 0 3
  • 史上最全的iOS面试题及答案 迷途的羔羊--专为路痴量身打造的品牌。史上最精准的定位。想迷路都难!闪电更新中......
    南虞阅读 1,567评论 0 8
  • Windows程序的内部运行原理 学习了MFC的一些理论性知识和实际的操作应用! 以下是理论知识: char:是A...
    张正戈hg阅读 399评论 1 0
  • extension UIColor{ class func colorWithHexString(hex:Stri...
    BankChang阅读 273评论 0 0
  • 一整天都充斥着不同的声音,从早上出发的行程开始,到结束一天的工作,几个人靠着沙发,从各自的角度发出不同的声音,...
    徐伟革阅读 215评论 0 0