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
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
相关文章推荐
- LPCTSTR和LPTSTR和char *究竟有什么区别
- 关于char, wchar_t, TCHAR, _T,L,TEXT,_TEXT,LPSTR,LPCSTR,PWSTR,PCWSTR,LPTSTR,LPCTSTR的区别
- LPCTSTR,LPTSTR,CSTRING,CHAR *等等的区别
- int main(int argc,char* argv[])详解,以及与int main()有什么区别
- 堆和栈究竟有什么区别?
- char(10)和VARCHAR(10)主要的区别是什么?
- 堆和栈究竟有什么区别?
- char(10)和VARCHAR(10)主要的区别是什么?
- “==”和equals方法究竟有什么区别?
- 【Java面试题】3 Java的"=="和equals方法究竟有什么区别?简单解释,很清楚
- char varchar nchar nvarchar 四者的区别是什么(为何SQL Server自动给字符串末尾加空格)
- LPCTSTR,LPCSTR,LPTSTR,LPSTR的区别及用法
- LPCSTR.LPSTR.LPCTSTR.LPTSTR 这几个类型应如何区别
- "=="和equals方法究竟有什么区别
- Pchar 、char、string有什么区别?与转换
- 【转】char*与LPCTSTR,LPTSTR的转换
- "=="和equals方法究竟有什么区别
- string 和 char *两者的区别是什么 ?什么时候用string好? 什么时候用 char * 合适?什么时候同时都能用?
- LPSTR、LPCSTR、LPTSTR和LPCTSTR,LPVOID的意义及区别
- 堆和栈究竟有什么区别?