CHAR 存放单个字符
WCHAR 存放双字符
TCHAR 与WCHAR无异
PTCHAR 指向双字符类型字符串
LPSTR 一个32位的指向字符串的指针
LPCSTR 一个32位的指向字符串常量的指针
LPWSTR 一个32位的指向unicode字符串的指针
LPCWSTR 一个32位的指向unicode字符串常量的指针
PSTR 指向字符串的指针,poionter
string
注:
很多变量前加lpsz,lpsz的各个字母的含义:
L
是long
p
是pointer
sz是
以
/0结束的字符串
在WINNT.H中有如下定义
typedef char
CHAR;
typedef CHAR *
LPSTR, *
PSTR;
typedef WCHAR TCHAR, *PTCHAR
_T与_L的区别就是 _L不管你用那种方式编译,一律用unicode方式编码
_T是个适配宏,如果定义了_UNICODE时,_T与L相同,否则_T用ANSI方式编码
LPSTR与PSTR的区别
也就是说LPSTR与PSTR定义的变量与char *定义的变量完全相同,都可以作为指向字符串的指针,而LPSTR的字面意思是指向字符串的长指针(相对于16位而言),PSTR的字面意思是指向字符串的指针,但是由于32位的普及,从Visual C++ 6.0开始它们完全相同,没有任何区别,只是由于习惯大家还分别在不同的地方使用它们。
即:LPSTR=PSTR=char *(完全等同)。
TCHAR与CHAR区别:
char:计算机编程语言(c、c++、java、VFP等)中可容纳单个字符的一种基本数据类型。
TCHAR:为了满足Unicode编码,对char的扩展,即_T(“str”)表示TCHAR类型
C++支持两种字符串,即常规的ANSI编码(使用""包裹)和Unicode编码(使用L""包裹),这样对应的就有了两套字符串字符串处理函数,比如:strlen和wcslen,分别用于处理两种字符串char和TCHAR类型