TCHAR和TEXT宏

来源:互联网 发布:中小型国有企业知乎 编辑:程序博客网 时间:2024/04/29 04:37

1.TCHAR宏:

TCHAR是通过define定义的字符串宏

c++支持两种字符串分别是常规的ANSI编码(使用""),和UNICODE编码(使用L""),这样就有两套字符串处理函数,例如strlen()和wcslen(),分别对应两种字符串

微软将这两种字符集进行了统一,通过条件编译使用(_UNICODE和UNICODE)宏,控制实际使用的字符集,这样就有_T("")字符串和_tcslen()函数

为了存储这样的字符串就有了TCHAR类型

没有定义_UNICODE宏时,TCHAR = char,_tcslen = strlen

定义_UNICODE宏时,TCHAR = wchar_t, _tcslen = wcslen()

这样就很容易的适用于宽窄字符集,TCHAR适用于双字节字符串,所以使用中日韩的文字,这样就是编程简化了

2.TEXT宏

TEXT宏时windows程序设计中经常遇到的宏,在winnt.h中定义

TCHAR * ptch = TEXT("this is a const string") ;

如果使用UNICODE字符集,则TEXT("this is a const string")相当于L“this is a const string”,如果使用普通的ascii字符集就是普通的"this is a const stirng"字符串,这样程序移植性就强

在写windows程序时,使用TCHAR代替程序中的char和wchar_t,对于字符串常量使用TEXT或者_T宏。


原创粉丝点击