LPSTR LPTSTR

Posted wllwqdeai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LPSTR LPTSTR相关的知识,希望对你有一定的参考价值。

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






















































以上是关于LPSTR LPTSTR的主要内容,如果未能解决你的问题,请参考以下文章

为啥 OPENFILENAME lpstrFileTitle 参数是 LPSTR 而不是 LPCSTR?

编组 LPSTR 和浮动时的不平衡堆栈

从 CString 设置 LPSTR

为啥将字符串传递给接受 LPSTR 的函数不起作用?

分配 hdc 值以调用 GetGlyphIndices(hdc,lpstr,c,pgi,l) 函数 n Delphi

零终止字符串的 C++ LPSTR 和字符串问题