LPCTSTR、LPTSTR、LPSTR、LPCSTRなどのVC++の紛らわしい定義の意味

一見正体不明のVC++オリジナル定義。よーくみれば違いが分かる。

名前 意味
LP *(ポインタ)
C const
TSTR TCHAR(char)
STR char
WSTR WCHAR(ユニコード用:2byte)

ゆえに

定義 正体
LPSTR char*
LPCSTR const char*
LPTSTR TCHAR*
LPCTSTR const TCHAR*
LPWSTR WCHAR*
LPCWSTR const WCHAR*

となる。