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

05-20 15:02