uincode的缺点 :1、程序中的没有个字串都占两倍的存储空间....
在Microsoft Visual c++包含了TCHAR.H头文件,_tcslen就定义了wcslen:
#define _tcslen wcslen
如果没有定义UNICODE,则 _tcslen定义为strlen;
#define _tcslen strlen
TCHAR.H还用一个新的资料类型TCHAR来解决两种字符的问题,如果定义了_UNICODE识别字,那么TCHAR就是wchar_t:
typedf wchar_t TCHAR;
否则就是
typedef char TCHAR;
字串中的L问题
如果定义了_UNICODE识别字,那么一个称作__T的巨集就定义如下:
#define _ _T(x) L##x //合乎 ANSI C标准的前置处理器规范 ,## 称为 粘贴符号 ,他将字母 L 添加到巨集引数上,因此,如果巨集引数是 "Hello!",则 L##x 解释为 L"Hello!";
如果没有定义 _UNICODE识别字,则 __T巨集只简单的定义如下
#define _ _T(x) x
此外 还有两个巨集于__T定义相同:
#define _T(x) _ _T(x)
#define _TEXT(x) _ _T(x)
eg:
_TEXT("Hello!")