CString::operator LPCTSTR

Этот оператор приведения обращается к 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;