Поделиться через


Класс CStrBufT

Этот класс обеспечивает автоматическую очистку ресурсов и GetBuffer ReleaseBuffer вызовы существующего CStringT объекта.

Синтаксис

template<typename TCharType>
class CStrBufT

Параметры

TCharType
Тип символа CStrBufT класса. Может применяться один из перечисленных ниже типов.

  • char (для строк символов ANSI)

  • wchar_t (для строк символов Юникода)

  • TCHAR (для строк символов ANSI и Юникода)

Участники

Общедоступные определения типов

Имя Описание
PCXSTR Указатель на константную строку.
PXSTR Указатель на строку.
StringType Строковый тип, буфер которого требуется управлять специализациями этого шаблона класса.

Открытые конструкторы

Имя Описание
CStrBufT::CStrBufT Конструктор для объекта буфера строки.

Открытые методы

Имя Описание
CStrBufT::SetLength Задает длину буфера символов связанного объекта строки.

Открытые операторы

Имя Описание
CStrBufT::operator PCXSTR Извлекает const указатель на буфер символов связанного объекта строки.
CStrBufT::operator PXSTR Извлекает указатель на буфер символов связанного объекта строки.

Открытые константы

Имя Описание
CStrBufT::AUTO_LENGTH Автоматически определите новую длину строки в выпуске.
CStrBufT::SET_LENGTH Задайте длину строкового объекта во время GetBuffer

Замечания

Этот класс используется в качестве класса-оболочки для замены вызовов GetBuffer и ReleaseBuffer, или GetBufferSetLength и ReleaseBuffer.

В первую очередь разработан как вспомогательный класс, CStrBufT позволяет разработчику работать с символьным буфером строкового объекта, не беспокоясь о том, как или когда вызывать ReleaseBuffer. Это возможно, так как объект-оболочка выходит из области естественно в случае исключения или нескольких выходов из кода; вызывая деструктор, чтобы освободить строковый ресурс.

Требования

Заголовок: atlsimpstr.h

CStrBufT::AUTO_LENGTH

Автоматически определите новую длину строки в выпуске.

static const DWORD AUTO_LENGTH = 0x01;

Замечания

Автоматически определите новую длину строки в выпуске. Строка должна быть завершена значением NULL.

CStrBufT::CStrBufT

Создает буферный объект.

CStrBufT(StringType& str, int nMinLength, DWORD dwFlags = AUTO_LENGTH) throw(...);
explicit CStrBufT(StringType& str) throw(...);

Параметры

str
Строковый объект, связанный с буфером. Как правило, разработчик будет использовать предопределенные типдефы CStrBuf (вариант TCHAR), CStrBufA (char variant) и CStrBufW (wchar_t variant).

nMinLength
Минимальная длина буфера символов.

dwFlags
Определяет, определена ли длина строки автоматически. Может применяться один из перечисленных ниже типов.

Замечания

Создает строковый буфер для связанного объекта строки. Во время строительства вызывается CSimpleStringT::GetBuffer или CSimpleStringT::GetBufferSetLength .

Обратите внимание, что конструктор копирования имеет значение private.

CStrBufT::operator PCXSTR

Непосредственно обращается к символам, хранящимся в связанном строковом объекте в виде строки в стиле C.

operator PCXSTR() const throw();

Возвращаемое значение

Указатель символа на данные строки.

Замечания

Вызовите эту функцию, чтобы вернуть указатель на буфер символов строкового объекта. Содержимое строкового объекта невозможно изменить с помощью этого указателя.

CStrBufT::operator PXSTR

Непосредственно обращается к символам, хранящимся в связанном строковом объекте в виде строки в стиле C.

operator PXSTR() throw();

Возвращаемое значение

Указатель символа на данные строки.

Замечания

Вызовите эту функцию, чтобы вернуть указатель на буфер символов строкового объекта. Разработчик может изменить содержимое строкового объекта с помощью этого указателя.

CStrBufT::P CXSTR

Указатель на константную строку.

typedef CSimpleStringT<TCharType>::PCXSTR PCXSTR;

CStrBufT::P XSTR

Указатель на строку.

typedef CSimpleStringT<TCharType>::PXSTR PXSTR;

CStrBufT::SET_LENGTH

Задайте длину строкового объекта во GetBuffer время.

static const DWORD SET_LENGTH = 0x02;

Замечания

Задайте длину строкового объекта во время GetBuffer.

Определяет, вызываются ли CSimpleStringT::GetBuffer и CSimpleStringT::GetBufferSetLength при создании объекта буфера строки.

CStrBufT::SetLength

Задает длину буфера символов.

void SetLength(int nLength);

Параметры

nLength
Новая длина буфера символов объекта строки.

Примечание.

Должно быть меньше или равно минимальной длине буфера, указанной в конструкторе CStrBufT.

Замечания

Вызовите эту функцию, чтобы задать длину строки, представленной объектом буфера.

CStrBufT::StringType

Строковый тип, буфер которого требуется управлять специализациями этого шаблона класса.

typedef CSimpleStringT<TCharType> StringType;

Замечания

TCharType — это тип символа, используемый для специализации шаблона класса.

См. также

Диаграмма иерархии
Общие классы ATL/MFC