1. MFC

  • 以C++类的形式封装了Windows API

  • 一个编程框架

      c++支持两种字符串,常规的ANSI编码和Unicode编码TCHAR:字符设置为ANSI,相当于char;设置为Unicode,相当于wchar_t.
    
  • 编码
    ANSI使用8位二进制编码
    Unicode为所有字符都分配了一个唯一的数字编号,6位十六进制
    UTF是Unicode的实现方式,UTF-8使用变长字符,当时单字节的符号时,和ASCI编码是一样的

2. _T和L
L作用:告诉编译器,字符串按宽字符存储。
注意:Unicode是宽字符编码的一种,严格说Unicode是字符集(字符和而精致的对应关系,为每个字符分配唯一编号)
字符编码:如何将字符编号存储到计算机(UTF-87即Unicode转换格式,至少使用8bit存储字符)
_T(""):是一个宏,_T宏可以把引号里面的字符串根据你的环境设置,使得编译器会根据编译目标环境选择合适的字符处理方式。

3. TCHAR
TCHAR它在采用ANSCLL的编码中表示单字符,在UNICODE编码中表示双字符

4. CString

 数据类型为wchar_t * 或者char *   (因处于的环境编码)Unicode下需要L或者_T赋值字符串
  • wchar_t:C/C++字节类型,宽字节字符(无符号数且一个字符占两个字节)

      wchar_t mm[20] = L"HELLO WORLD";
    
  • CString的getString:生成const char *或 const wchar_t *指针(因处于的环境编码)

  • CString的getBuffer:用于修改CString中的内容,一个指向对象的(以null结尾的)字符缓冲区的LPTSTR指针

  • String的c_str(): 返回一个const char*

  • Format:格式化字符串

      %s表示char*,%u表示unsigned int,%hd表示short,%hu表示unsigned short,%hhd表示char,%hhu表示unsigned char,%f表示float等
    

5. LPSTR、LPCSTR

 LPCSTR     32-bit   指针,指向一个常量字串    const char*或const wchar_t *LPSTR        32-bit   指针,指向一个字串   char*或wchar_t *LPCTSTR   32-bit   指针,指向一个常量字串。此字串可移植到Unicode   和DBCS   LPTSTR      32-bit   指针,指向一个字串。此字串可移植到Unicode   和DBCS

6. CString与string

1.string->CString
//多字节下CString cstr=str.c_str();cstr . format ( " %s " , str.c_str ()) ; //在Unicode下CString cstr=CA2W(str.c_str());
2.CString->string
//多字节下
CString cstr=_T("as");
string str=cstr.GetString();
//Unicode下
string str=CW2A(cstr.GetString());
  • CString与char*、LPTSTR
1.char*->CStringCString a;char* ch="lll";a=ch;2.CString->LPTSTRLPTSTR ip;ip=(LPTSTR)(LPCTSTR)cstr;
  1. 字符类型输出
  • CString输出
 CString str1(_T("baidu"));//wcout << str1.GetString() << endl;cout << str1.GetString() << endl;创建CString对象因为<<无法重载CString输出,所以用getString()获取字符串再输出,再Unicode下是wchar_t用wcout

MFC中字符类型转换相关推荐

  1. MFC中字符间相互转换总结

    1.char*转CString char szPath[50]; CString str; str.Format("%s",szPath); 2.char*转int int nrO ...

  2. 在MFC中使用Cstring

    此文介绍了关于MFC使用CString的资料,可一参考一下. 转自于VC知识库:http://www.vckbase.com/index.php/wv/829 通过阅读本文你可以学习如何有效地使用 C ...

  3. MFC中的CString类使用方法指南

    MFC中的CString类使用方法指南 原文出处:codeproject:CString Management [禾路:这是一篇比较老的资料了,但是对于MFC的程序设计很有帮助.我们在MFC中使用字符 ...

  4. MFC中关于UINT与USHORT

    在C, C++中不存在UINT这个关键字,UINT类型是unsigned int派生出来的 int是带符号的,表示范围是:-2147483648 到 2147483647 uint是不带符号整形,表示 ...

  5. MFC中的UINT与USHORT

    注:转自samkieth的csdn博客  点击打开链接    在C, C++中不存在UINT这个关键字,UINT类型是unsigned int派生出来的 int是带符号的,表示范围是:-2147483 ...

  6. MFC中强制转换总结

    由于类型转换经常出问题这里收集了一些常见的问题,下面是强制类型转换的科普: C++中的类型转换分为两种: 1.隐式类型转换: 2.显式类型转换. 而对于隐式变换,就是标准的转换,在很多时候,不经意间就 ...

  7. C#.NET 中的类型转换

    前些天,碰到了数据类型转换与格式化问题,在网上查找了一下,有人已经把它写了出来,粘贴如下,共大家分享: C#.NET 中的类型转换 C# 出来也有些日子了,最近由于编程的需要,对 C# 的类型转换做了 ...

  8. MFC中的几个常用类——CWnd

    2019独角兽企业重金招聘Python工程师标准>>> 1 窗口类 1.1 概述 CObject └CCmdTarget └CWnd CWnd是MFC窗口类的 基类,提供了微软基础类 ...

  9. MFC中的MainFrame Dlg,App,Doc,View的关系

    MFC中的MainFrame Dlg,App,Doc,View的关系 MainFrame: 主框架类 Dlg 是Dialog 的缩写,表示对话框本身 App类就是这个SDI作为"程序&quo ...

最新文章

  1. php数字截取2位小树,数据结构-PHP 二分搜索树的层序遍历(队列实现)
  2. 修改Vista系统目录权限
  3. LCUI.css 0.1.2 发布, 基于 LCUI 开发的 UI 组件库
  4. 5.1.3 OS控制I/O设备的几种方式?(程序直接控制方式、中断驱动方式、DMA、通道控制)
  5. 阿里云天池 Python训练营Task5:Python训练营测试 学习笔记
  6. sqlalchemy_SQLAlchemy使ETL变得异常简单
  7. java新人面试经历_分享近两周以来的真实面试经历
  8. Mysql --- 索引
  9. MySQL学习笔记2:数据库的基本操作
  10. 幅频特性曲线protues_求助如何用MULTISIM画出幅频特性曲线?如何使用波特图仪器?...
  11. VS2010中malloc的使用
  12. PyQt4入门教程(1)_PyQt介绍及准备工作
  13. python aic准则_赤池信息准则AIC,BIC
  14. 通用电气公司要破产?美国慌不慌?
  15. RMON 远端网络监控
  16. 独享还是共享,你选择哪一种锁?(独享锁/共享锁)
  17. bim翻模教程:如何控制revit中的填充图案和构件显示隐藏
  18. Unirech:阿里云国际云服务器ecs建站流程
  19. Linux:系统安全及应用
  20. JQuery之常用插件

热门文章

  1. 用chrome dev tools 强制js注入
  2. book mac pro怎么重装系统_macbook pro怎么重装mac系统?
  3. Mosquitto安装
  4. U当家U盘启动盘制作教程
  5. u-boot压缩包下载网址
  6. webview长按图片识别二维码
  7. Excel自定义纸张打印设置碰到无法对上尺寸的问题
  8. 各种HOOK方式和检测对抗方法
  9. 中国余数定理(Chinese Remainder Theorem)
  10. 大连实德集团——总裁——徐明