Tuesday, November 13, 2007

_TCHAR and char

_TCHAR 是一种通用字符类型,它有可能是char型,也有可能是wchar_t型,决定它是那一种的关键是你的程序是否定义了#define _UNICODE ,当你没有定义时(ASII),_TCHAR就是char,定义了之后就是wchar_t型。_TCHAR有这种特性是因为微软制定的这种字符映射规则。_T()就是做了这种转换。

  • Defining
//请记住在stdafx.h的一开始:
#define UNICODE
//or #define _UNICODE

#include "stdafx.h"
#include "windows.h"
#include "tchar.h"
  • Using
strcmp(FileName, ".") ; 请改写为: _tcscmp(FileName,_T(".") ;
strstr(FileName, ".dat") 请一定改写为:_tcsstr(FileName, _T(".dat"));
......
  • Setting
vs2005: project properties -> configuration properties -> general -> Character Set
1. Not Set: SBCS (ASCII)
2. Unicode


1 comments:

Unknown said...

Thank you! It's very helpful.