CString 与 LPCWSTR、LPSTR、char*、LPWSTR 等类型的转换

本文详细介绍了C++中的CString类与其他字符串类型如LPCWSTR、LPSTR、char*、LPWSTR之间的转换,包括转换方法、转换过程中涉及的数据类型,以及ASCII和UNICODE之间的转换。同时讨论了MFC中的TCHAR、LPTSTR和LPCTSTR的含义和区别,以及在不同字符集下的使用注意事项。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值