From:https://www.cnblogs.com/leanee/articles/2940088.html
char [] 到 LPWSTR转换的一个具体应用:http://www.cppblog.com/lateCpp/articles/153358.html
CString详细讲解:https://blog.csdn.net/qq_41786318/article/details/81989217
CString 应用操作指南【转】:https://blog.csdn.net/iteye_13411/article/details/82092838
VS2010/MFC编程入门之四十二(MFC常用类:CString类)http://www.jizhuomi.com/software/228.html
因为 C++ 支持两种字符串 :
- 1. 常规的 ANSI 编码(使用 "" 包裹)
- 2. Unicode 编码(使用 L"" 包裹)
UNICODE 宏 和 _UNICODE 宏 (Windows 核心编程 第五版 2.4 节)
这样对应的就有了两套字符串字符串处理函数,比如:strlen 和 wcslen,分别用于处理两种字符串。微软将这两套字符集及其操作进行了统一,通过条件编译(通过 _UNICODE 和 UNICODE 宏)控制实际使用的字符集,这样就有了 _T("") 这样的字符串,对应的就有了_tcslen 这样的函数。为了存储这样的通用字符,就有了TCHAR:
- 当 没有定义 _UNICODE宏 时,TCHAR = char,_tcslen = strlen
- 当 定义 _UNICODE宏 时,TCHAR = wchar_t , _tcslen = wcslen[1]
当我们定义了 UNICODE宏,就相当于告诉了编译器:我准备采用 UNICODE 版本。这个时候,TCHAR 就会摇身一变,变成了wchar_t 。而未定义 UNICODE宏 时,TCHAR 摇身一变,变成了unsigned char。这样就可以很好的切换宽窄字符集。
tchar 可用于双字节字符串,使程序可以用于中日韩等国 语言文字处理、显示。使编程方法简化。
C++ 中的 wchar_t 数据类型
标准里面是这样解释的:Wide character ( 宽字节字符 )
Type whose range of values can represent distinct codes for all members of the largest extended character set specified among the supported locales.
In C++, wchar_t is a distinct fundamental type (and th