T()和L的区别
来源:互联网 发布:个人seo 编辑:程序博客网 时间:2024/04/27 07:12
Visual C++里边定义字符串的时候,用_T来保证兼容性,是一种数据类型,但是它不会产生结果,被编译系统的预处理系统来解释,VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。
如果将来你不打算升级到unicode,那么也不需要_T!
_T是将字符串转换为TCHAR,TCHAR是一个宏定义,当定义了UNICODE时TCHAR等同于 WCHAR,否则等同于CHAR。为了和以后的平台兼容,建议使用TCHAR,而不要使用普通的CHAR。例子:TCHAR *s = _T("FSDF")。
L将字符串转换为WCHAR,用于需要UNICODE的环境。例子:WCHAR *s = L"FSDF"。
Example:
SetWindowText(_T("我很好"));
在中文Win2000上正常,在英文Win2000下就是乱码!
// _T()自动将()内字符串转成unicode or Multibyte-character or SBCS (ASCII) 根据系统宏定义,
// 为了将程序与vb等unicode 编码的程序交互,为了程序的国际化,为了...
// 看msdn! 如果定义了 UNICODE 就变成 L把字符串转换成宽字符,否则没用。
// 统一的字符编码标准, 采用双字节对字符进行编码
// _T把参数转换成当前系统支持的字符,例如支持UNICODE就转换成宽字符,否则就是单字符
#ifdef UNICODE
#define _T(x) L##x
#else
#define _T(x) x
#endif
_T/_TEXT是在TCHAR.H头文件中定义的宏。
在_UNICODE和_MBCS都没有定义时,对其后的字符串无影响
在_MBCS定义时,对其后的字符串无影响
在_UNICODE定义时,其后的字符串被定义为 L(即转换为Unicode字符)
本质上是为了生成Unicode和非Unicode通用的程序而定义的宏。
- T()和L的区别
- T和L的区别在哪里
- T()和L的特点与区别是什么
- MB/L和HB/L的区别
- Makefile 里 -l和-L的区别
- Makefile 里 -l和-L的区别
- gcc 后 -l 和 -L的区别
- Makefile 里 -l和-L的区别
- linklist L和lintlist *L的区别
- T&L和HAL
- _T 和 L 的区别
- _T和L的区别
- 汽车排量T和L有什么区别
- L宏和T宏
- L TEXT和 _T的区别
- _T、TEXT("")和L""的区别
- -L、-rpath和-rpath-link的区别
- Java系列-nul和""l的区别
- linux多核处理器上的负载均衡原理
- IE7.0默认主页修改
- SQL Server Profiler 看到的几个指标说明
- 虚函数和纯虚函数区别
- 北京大学2011年硕士研究生招生简章
- T()和L的区别
- 关于操作系统托盘图标
- hdu 1257 dp+贪心
- 学习 ExtendedWebBrowser2 (2) C#中的Delegates与Event Handler (2)
- 用正则截取字符串中的中文
- 实现CEGUI的中文显示和输入
- 时间转换,HHmmss与hhmmss的区别
- 清华北大创业帮
- Map/Reduce的GroupingComparator排序简述