Этот оператор приведения обращается к C строке с нулевым символом в конце, содержавшейся в объекте CString. Никакие символы не копируются; только возвращается указатель. Будьте внимательным с этим оператором. Если Вы изменяете объект CString после того, как Вы получили символьный указатель, Вы можете вызвать перераспределение памяти, которая лишает указатель силы (он будет указывать нетуда).
operator LPCTSTR ( ) const;
Возвращает символьный указатель на данные в строке.
Следующий пример демонстрирует использование CString::operator LPCSTR.
/* Если прототип функции известен компилятору, оператор приведения LPCTSTR может быть вызван неявно */
CString strSports(_T("Hockey is Best!"));
TCHAR sz [1024];
lstrcpy (sz, strSports);
/* Если прототип не известен, или - прототип va_arg,
Вы должны вызвать оператор приведения явно. Например,
va_arg при запросе к sprintf () нуждается в приведении: */
sprintf (sz, " I think that %s! \n ", (LPCTSTR) strSports);
/* в то время как параметр форматирования, как известно, является LPCTSTR и
поэтому не нуждается в приведении: */
sprintf (sz, strSports);
/* Обратите внимание, что некоторые ситуации неоднозначны. Эта строка выведет адрес strSports: */
cout <<strSports;
/* в то время как эта строка выведет содержание строки */
cout <<(LPCTSTR) strSports;