Класс 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
Определяет, определена ли длина строки автоматически. Может применяться один из перечисленных ниже типов.
AUTO_LENGTH длина строки автоматически определяется при вызове CSimpleStringT::Release . Строка должна быть завершена значением NULL. Значение по умолчанию.
SET_LENGTH длина строки задается при вызове CSimpleStringT::GetBuffer .
Замечания
Создает строковый буфер для связанного объекта строки. Во время строительства вызывается 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
— это тип символа, используемый для специализации шаблона класса.