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宏。