预备知识:
typedef char CHAR;
typedef wchar_t WCHAR;
#define CONST const
TCHAR
#ifdef UNICODE
typedef WCHAR TCHAR;
#else
typedef char TCHAR;
#endif
字符串指针
LPSTR
typedef CHAR *LPSTR;
LPCSTR
typedef __nullterminated CONST CHAR *LPCSTR;
LPWSTR
typedef WCHAR *LPWSTR;
LPCWSTR
typedef CONST WCHAR *LPCWSTR;
LPTSTR
#ifdef UNICODE
typedef LPWSTR LPTSTR;
#else
typedef LPSTR LPTSTR;
#endif
LPCTSTR
#ifdef UNICODE
typedef LPCWSTR LPCTSTR;
#else
typedef LPCSTR LPCTSTR;
#endif
PSTR
typedef CHAR *PSTR;
PCSTR
typedef CONST CHAR *PCSTR;
PWSTR
typedef WCHAR *PWSTR;
PCWSTR
typedef CONST WCHAR *PCWSTR;
PTSTR
#ifdef UNICODE
typedef LPWSTR PTSTR;
#else
typedef LPSTR PTSTR;
#endif
PCTSTR
#ifdef UNICODE
typedef LPCWSTR PCTSTR;
#else
typedef LPCSTR PCTSTR;
#endif
规律:
LP是Long Pointer的简称,长指针(相对于16位的短指针而言)
C是const的简称
T的具体含义根据项目的编码方式(ANSI或Unicode)来确定。
W是WCHAR的简称
所以:
LPSTR是一个指向char类型的指针
LPCSTR是一个指向const char类型的指针
LPWSTR是一个指向wchar_t类型的指针
LPCWSTR是一个指向const wchar_t类型的指针
LPTSTR是一个指向TCHAR类型的指针
LPCTSTR是一个指向CONST TCHAR类型的指针
PSTR是一个指向char类型的指针
PCSTR是一个指向const char类型的指针
PWSTR是一个指向wchar_t类型的指针
PCWSTR是一个指向const wchar_t类型的指针
PTSTR是一个指向TCHAR类型的指针
PCTSTR是一个指向CONST TCHAR类型的指针