TCHAR和WCHAR有什么区别?

Mih*_*yan 15 c++ winapi

我打开了winnt.h头文件,发现有两行:

typedef wchar_t WCHAR;
Run Code Online (Sandbox Code Playgroud)

typedef WCHAR TCHAR, *PTCHAR;
Run Code Online (Sandbox Code Playgroud)

但我的一篇帖子中有评论说它们之间存在一些差异.那有什么区别?

bma*_*ies 19

如果您阅读整个标题,您会发现:

#ifdef _UNICODE
typedef WCHAR TCHAR;
#else
typedef char TCHAR;
#endif
Run Code Online (Sandbox Code Playgroud)

或者说是这样的话.

也许MS已经取消了最近的狭隘选择.


Wya*_*son 10

TCHAR可以是charWCHAR基于平台.WCHAR始终是16位Unicode字符wchar_t.


Sag*_*gar 7

http://msdn.microsoft.com/en-us/library/aa383751%28VS.85%29.aspx

TCHAR:

如果定义了UNICODE,则为WCHAR,否则为CHAR.

WCHAR:

一个16位的Unicode字符.有关更多信息,请参阅字体使用的字符集.