Привет Артем. Ответь пожалуйста, в письме, как используется этот чертов оператор LPCTSTR класса CString. Ну ОЧЕНЬ надо. С уважением Дмитрий.
Класс CString появился как альтернативный метод работы со строками типа char buffer[100]. При этом при его создании учитывалось, что многие функции уже созданы и необходимо будет обеспечить поддержку старого подхода основанного на указателях строк. Рассматривая данный указатель давайте посмотрим историю его появления.
typedef LPCSTR LPCTSTR; typedef CONST CHAR *LPCSTR, *PCSTR;
Вот это просто указатель на строку. Только если Вы обратите внимание на буковку C в строке LPCTSTR этот указатель именно CONST. В MSDN описано, что LPCTSTR это 32 битный указатель на строку для совместимости с UNICODE и DBCS. UNICODE строки отличаются от обычных строк вот чем:
wchar_t - 16 бит char - 8 бит
Проще всего воспринимать этот указатель как аналог указателя в Win32
LPCSTR (Win32 data type) - LPCTSTR
32 битный указатель на строку. Использовать его можно также как и используется указатель на буфер. Вот пример кода.
char buffer[100]; strcpy(buffer,"Hello World!\n"); LPCTSTR st=buffer; CString s(st); AfxMessageBox(s);
Кроме того в классе CString есть оператор LPCTSTR
operator LPCTSTR ( ) const;
Этот оператор позволяет получить доступ к строке в стиле C. Возвращается только указатель. Вот пример кода
CString s; LPCTSTR lp; s="Hi"; lp = (LPCTSTR) s; printf(lp); return 0;