Ответить на первую часть Вашего вопроса:
LPCSTR
строка константы
LPCTSTR
, const TCHAR
строка, (TCHAR
являющийся или широким символом или символом в зависимости от того, определяется ли UNICODE в Вашем проекте)
LPTSTR
, (неконстанта) TCHAR
строка
, Это - великое codeproject статья , описывающая строки C++ (см. 2/3 путь вниз к диаграмме, сравнивающей различные типы)
Быстрый и грязный:
LP
== Long Pointer. Просто думайте указатель или символ*
C
= Const, в этом случае, я думаю, что они означают, что символьная строка является константой, не, указатель, являющийся константой
STR
, , строка
эти T
для широкого символа или символа (TCHAR) в зависимости от опций компиляции.
Добавление к John и ответу Tim.
, Если Вы не кодируете для Win98, существует только два из 6 + строковые типы, которые необходимо использовать в приложении
LPWSTR
LPCWSTR
, Остальные предназначены для поддержки платформ ANSI или двойных компиляций. Те не так релевантны сегодня, как они раньше были.