当前位置: 代码迷 >> 综合 >> VC++ WCHAR,CHAR,TCHAR的区别
  详细解决方案

VC++ WCHAR,CHAR,TCHAR的区别

热度:6   发布时间:2024-01-10 15:18:01.0

C++的字符分成两种类型wchar_t和char。  
其中   WCHAR==wchar_t,CHAR==char。  
TCHAR是一种条件编译的类型,根据条件可以代表wchar_t或char。

#ifdef   UNICODE    
          typedef   wchar_t   TCHAR;    
#else    
          typedef   unsigned   char   TCHAR;    
#endif    


typedef   unsigned   char   CHAR;    
typedef   unsigned   wchar_t   WCHAR;

CHAR为单字节字符。还有个WCHAR为Unicode字符,即不论中英文,每个字有两个字节组成。如果当前编译方式为ANSI(默认)方式,TCHAR等价于CHAR,如果为Unicode方式,TCHAR等价于WCHAR。在当前版本LPCSTR和LPSTR没区别,即以零结尾的字符串指针,相当于CHAR *。 LPSTR、LPCSTR相当于char *,所以这种类型变量的赋值等同于char *的赋值。

Ex1: LPSTR lpstrMsg = "I'm tired.";
Ex2: char strMsg[]="I'm tired.";
LPSTR lpstrMsg = (LPSTR) strMsg;

unsigned short * 和 char* : 一个是宽字符,一个是多字节,两种编码是不一样的。

如果你的程序要想在全球发布,一定要使用宽字符Unicode,

TChar strFileName[MAX_PAT

  相关解决方案