_T() 函数

转载 2012年03月23日 08:26:36

_T("")是一个宏,他的作用是让你的程序支持Unicode编码
因为Windows使用两种字符集ANSI和UNICODE,
前者就是通常使用的单字节方式,
但这种方式处理象中文这样的双字节字符不方便,
容易出现半个汉字的情况。
而后者是双字节方式,方便处理双字节字符。

Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。
如果你编译一个程序为ANSI方式,
_T实际不起任何作用。
而如果编译一个程序为UNICODE方式,则编译器会把"Hello"字符串以UNICODE方式保存。_T和_L的区别在于,_L不管你是以什么方式编译,一律以UNICODE方式保存。

 

LPSTR:32bit指针指向一个字符串,每个字符占1字节

LPCSTR:32-bit指针指向一个常字符串,每个字符占1字节
LPCTSTR:32-bit指针指向一个常字符串,每字符可能占1字节或2字节,取决于Unicode是否定义
LPTSTR:32-bit指针每字符可能占1字节或2字节,取决于Unicode是否定义

 

L是表示字符串资源为Unicode的。

比如
wchar_t Str[] = L"Hello World!";
这个就是双子节存储字符了。

_T是一个适配的宏~


#ifdef _UNICODE的时候
_T就是L
没有#ifdef _UNICODE的时候
_T就是ANSI的。

比如

LPTSTR lpStr = new TCHAR[32];
TCHAR* szBuf = _T("Hello");
以上两句使得无论是在UNICODE编译条件下都是正确编译的。

而且MS推荐你使用相匹配的字符串函数。
比如处理LPTSTR或者LPCTSTR 的时候,不要用strlen ,而是要用_tcslen

否则在UNICODE的编译条件下,strlen不能处理 wchar_t*的字符串。

T是非常有意思的一个符号(TCHAR、LPCTSTR、LPTSTR、_T()、_TEXT()...),它表示使用一种中间类型,既不明确表示使用 MBCS,也不明确表示使用 UNICODE。那到底使用哪种字符集?编译的时候才决定

python学习——函数式编程——高阶函数

Python学习——函数式编程——高阶函数:1:map && reduce ;2: filter; 3: sorted;
  • be_your_king
  • be_your_king
  • 2017年03月29日 22:11
  • 116

hive常用函数整理

Hive常用的函数整理,方便快速查找使用 1.时间戳格式化 select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss'); select ...
  • u011098327
  • u011098327
  • 2017年02月09日 10:53
  • 271

c语言函数---T

本文由 书画小说软件 整理发布 内容与本软件无关 更惬意的读、更舒心的写、更轻松的发布 最全古典小说网 由本软件发布所得 函数名: tan 功 能: 正切函...
  • shuilan0066
  • shuilan0066
  • 2014年10月20日 13:40
  • 558

串的模式匹配算法(求子串位置的定位函数Index(S,T,pos))

串的模式匹配的一般方法如算法4.5(在bo4-1.cpp 中)所示:由主串S 的第pos 个字 符起,检验是否存在子串T。首先令i 等于 pos(i 为S 中当前待比较字符的位序),j 等于 1...
  • KongkOngL
  • KongkOngL
  • 2014年08月20日 20:52
  • 3780

muduo库的Singleton类剖析

如题,分析muduo库线程安全的单例模式类。 它的类图如下: 分析如下: #ifndef MUDUO_BASE_SINGLETON_H #define MUDUO_BASE_SI...
  • FreeeLinux
  • FreeeLinux
  • 2016年12月02日 08:50
  • 524

t分布,f分布(2个自由度),与Excel

下面的这个公式,就是fuw
  • zhanghongxian123
  • zhanghongxian123
  • 2014年09月03日 16:41
  • 4917

书本例子strindex函数

#include /*对输入的一行字符串做模版匹配,有匹配则输出*/ int getline(char line[], int max); int strindex(char source[],...
  • cmdssd1
  • cmdssd1
  • 2014年01月23日 23:04
  • 1582

Scala:Function(高阶函数式编程)

本篇介绍Scala中一个可以进行高阶函数式编程的模块,我们来看看它都实现了哪些操作,并结合源码理解一下。...
  • bdmh
  • bdmh
  • 2015年12月03日 16:23
  • 2774

JavaScript学习总结(四)function函数部分

概念 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。 js 支持两种函数:一类是语言内部的函数(如eval() ),另一类是自己创建的。 在 JavaScript ...
  • Tsite
  • Tsite
  • 2017年03月02日 16:02
  • 173

Discuz!X数据库函数操作命令(转载)

函数 功能 DB::table($tablename) 获取正确带前缀的表名,转换数据库句柄 DB::delete($tablename, 条件,条数限制) 删除表中的数据 ...
  • u010472383
  • u010472383
  • 2016年07月15日 10:33
  • 312
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:_T() 函数
举报原因:
原因补充:

(最多只允许输入30个字)