非淡泊无以明志,非宁静无以致远
全部博文(408)
分类: C/C++
2010-01-04 23:19:37
1.MSDN是这样定义原型的:
typedef CONST CHAR *LPCSTR, *PCSTR;
typedef LPCSTR LPCTSTR;
typedef WCHAR *LPWSTR, *PWSTR;
typedef CONST WCHAR *LPCWSTR, *PCWSTR;
2.类型解析:
LPSTR 32-bit指针,指向一个字符串
LPCTSTR 32-bit指针,指向一个常数字符串,此字符串可移植到Unicode和DBCS(双字节字集)
LPTSTR 32-bit指针,指向一个字符串,此字符串可移植到Unicode和DBCS(双字节字集)
LPCSTR 32-bit指针,指向一个常数字符串
LPWSTR 以\0结束的Unicode字符串,即双字节
3.区别:
区别于有C的那一套,上面的三个都是变量,有C的那一套都是常量。
LPSTR对应与LPCSTR
LPWSTR对应与LPCWSTR
LPTSTR对应与LPCTSTR
CHAR 8bit ansi字符
WCHAR 16bit unicode字符
TCHAR 如果定义了UNICODE宏(#def UNICODE),TCHAR 等同于WCHAR ,如果没有定义unicode宏,
TCHAR 等同于CHAR
4.其它:
字符串操作,你们熟悉的那套是针对ANSI字符串设计的,
还有一套针对宽字符设计的函数。
例如:
wcsncpy
wcsncat
strncmy
同样,还有一套unicode字符串和ansi字符串之间相互转换的函数:
例如:
WideCharToMultiByte