您的位置:首页 > 其它

LPCTSTR和LPTSTR和char *究竟有什么区别

2014-04-09 15:11 99 查看
LPSTR = char*

LPCSTR = const char*

LPTSTR:

如果定义了UNICODE宏,那么LPTSTR = wchar_t*否则LPTSTR = char*

LPCTSTR:

如果定义了UNICODE宏,那么LPCTSTR = const wchar_t*,否则LPCSTR = const char*

告诉你方法,

"LP"前缀是历史遗留的,在Win32下就是 P ,代表指针的含义。

"C"代表const

"T"的含义就是如果定义了UNICODE,它就是宽字符版本,否则就是Ansi版本。

完整定义如下:

//Unicode 版本

typedef wchar_t WCHAR;

typedef WCHAR *PWCHAR;

typedef WCHAR *LPWCH, *PWCH;

typedef CONST WCHAR *LPCWCH, *PCWCH;

typedef WCHAR *NWPSTR;

typedef WCHAR *LPWSTR, *PWSTR;

typedef WCHAR UNALIGNED *LPUWSTR, *PUWSTR;

typedef CONST WCHAR *LPCWSTR, *PCWSTR;

typedef CONST WCHAR UNALIGNED *LPCUWSTR, *PCUWSTR;

// Ansi版本

typedef CHAR *PCHAR;

typedef CHAR *LPCH, *PCH;

typedef CONST CHAR *LPCCH, *PCCH;

typedef CHAR *NPSTR;

typedef CHAR *LPSTR, *PSTR;

typedef CONST CHAR *LPCSTR, *PCSTR;

#ifdef UNICODE

typedef WCHAR TCHAR, *PTCHAR;

typedef WCHAR TBYTE , *PTBYTE ;

typedef LPWSTR LPTCH, PTCH;

typedef LPWSTR PTSTR, LPTSTR;

typedef LPCWSTR PCTSTR, LPCTSTR;

typedef LPUWSTR PUTSTR, LPUTSTR;

typedef LPCUWSTR PCUTSTR, LPCUTSTR;

typedef LPWSTR LP;

#else

typedef char TCHAR, *PTCHAR;

typedef unsigned char TBYTE , *PTBYTE ;

typedef LPSTR LPTCH, PTCH;

typedef LPSTR PTSTR, LPTSTR, PUTSTR, LPUTSTR;

typedef LPCSTR PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR;

#endif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: