区分TCHAR和_TCHAR

时间:2010-06-01 10:25:11

标签: windows unicode tchar

Windows标头tchar.h中定义的两个符号TCHAR_TCHAR类型之间有哪些差异?用例子解释。简要描述在代码中使用TCHAR而不是_TCHAR的情况。 (10分)

2 个答案:

答案 0 :(得分:9)

除了@RussC所说的,TCHAR由Win32 API使用,基于UNICODE定义,而_TCHAR由C运行时使用,基于相反,_UNICODE定义。 UNICODE_UNICODE通常一起定义/省略,使TCHAR_TCHAR可互换,但这不是必需的。它们在语义上是分开的,以供不同的框架使用。

答案 1 :(得分:7)

在这里找到你的答案:

MSDN Forums >> Visual Studio Developer Center >> TCHAR vs _TCHAR

  

TCHAR和_TCHAR是相同的,但由于TCHAR没有   领先的下划线,微软不允许将其保留为   关键字(想象一下,如果你有一个名为TCHAR的变量。想想会发生什么   发生)。因此,当语言扩展时,TCHAR将不会被#defined定义   残疾人(/ Za)。

     

TCHAR在winnt.h中定义(当你#include时你会得到它   ),还有/ Ze下的tchar.h。   _TCHAR仅在tchar.h中可用(也是#defines _TSCHAR和_TUCHAR)。这些是普通TCHAR数据类型的无符号/有符号变体。