T()和L的区别

前端之家收集整理的这篇文章主要介绍了T()和L的区别前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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通用的程序而定义的宏。

猜你在找的VB相关文章