zoukankan      html  css  js  c++  java
  • MFC知识点整理

    【MFC】CString 与 string 间的转换

    WeiGordon 2019-05-22 15:28:58 16570 收藏 39
    分类专栏: MFC C++
    版权
    宽字节字符集(Unicode)、多字节字符集(Multi-Byte) 自适应转换:
    CString 转 string

    CString cstrTest = _T("test");
    string strTest;
    string = CT2A(cstrTest.GetString());
    1
    2
    3
    string 转 CString

    string strTest="test";
    CString cstrTest;
    cstrTest= CA2T(strTest.c_str());
    1
    2
    3
    这里使用的方法是ATL字符串转换宏。

    CT2A 、CA2T 在 Unicode 字符集下为 CW2A 、CA2W,在Muti-Byte字符集下都为 CA2A。

    CW2A 将宽字符集(Unicode)转化为多字符集(ASCII)
    CA2W 将多字符集(ASCII)转化为宽字符集(Unicode)

    其中
    C:convert
    W:宽字符串,也就是 UNICODE
    2:to
    A:ANSI 字符串,也就是 Muti-Byte。
    T : 中间类型,如果定义了 _UNICODE,则T表示W;如果定义了 _MBCS,则T表示A

    具体ATL方法及注意事项参考:
    yunshouhu 的 《ATL字符串转换宏》

    Unicode下:
    CString 转 string

    CString cstrTest = _T("test");
    string strTest;
    string = CW2A(cstrTest.GetString());
    1
    2
    3
    string 转 CString

    string strTest="test";
    CString cstrTest;
    cstrTest= CA2W(strTest.c_str());
    1
    2
    3
    多字符集下:
    (没有尝试,理论上应该是)
    CString 转 string

    CString cstrTest = _T("test");
    string strTest;
    string = CA2A(cstrTest.GetString());
    1
    2
    3
    string 转 CString

    string strTest="test";
    CString cstrTest;
    cstrTest= CA2A(strTest.c_str());

    原文链接:https://blog.csdn.net/Gordon_Wei/article/details/90443677

  • 相关阅读:
    IIS常见500错误解决方案
    发送邮件代码
    IIS站点/虚拟目录中访问共享目录(UNC)
    简简单单,一目了然C#与Matlab
    [转载]C#——DataGridView分页功能的实现
    博客之旅
    ASP.Net, Php , Java/Java EE?好困惑
    【转载】DataGridView中虚拟模式(Virtual Mode)用法
    selenium4.0降级为3版本
    web自动化中影响页面定位的场景有哪些?
  • 原文地址:https://www.cnblogs.com/adong7639/p/13372535.html
Copyright © 2011-2022 走看看