Classe CStrBufT
Essa classe fornece limpeza automática de recursos para chamadas GetBuffer
e ReleaseBuffer
em um objeto CStringT
existente.
Sintaxe
template<typename TCharType>
class CStrBufT
Parâmetros
TCharType
O tipo de caractere da classe CStrBufT
. Um dos seguintes pode ser feito:
char
(para cadeias de caracteres ANSI).wchar_t
(para cadeias de caracteres Unicode).TCHAR
(para cadeia de caracteres Unicode e ANSI)
Membros
Typedefs públicos
Nome | Descrição |
---|---|
PCXSTR |
Um ponteiro para uma cadeia de caracteres constante. |
PXSTR |
Um ponteiro para uma cadeia de caracteres. |
StringType |
O tipo de cadeia de caracteres cujo buffer deve ser manipulado por especializações desse modelo de classe. |
Construtores públicos
Nome | Descrição |
---|---|
CStrBufT::CStrBufT | O construtor do objeto de buffer de cadeia de caracteres. |
Métodos públicos
Nome | Descrição |
---|---|
CStrBufT::SetLength | Define o comprimento do buffer de caracteres do objeto de cadeia de caracteres associado. |
Operadores públicos
Nome | Descrição |
---|---|
CStrBufT::operator PCXSTR | Recupera um ponteiro const para o buffer de caracteres do objeto de cadeia de caracteres associado. |
CStrBufT::operator PXSTR | Recupera um ponteiro para o buffer de caracteres do objeto de cadeia de caracteres associado. |
Constantes públicas
Nome | Descrição |
---|---|
CStrBufT::AUTO_LENGTH | Determina automaticamente o novo comprimento da cadeia de caracteres na versão. |
CStrBufT::SET_LENGTH | Define o comprimento do objeto de cadeia de caracteres no tempo GetBuffer. |
Comentários
Essa classe é usada como uma classe wrapper para substituir chamadas para GetBuffer e ReleaseBuffer ou GetBufferSetLength e ReleaseBuffer
.
Criada principalmente como uma classe auxiliar, CStrBufT
fornece uma maneira conveniente de um desenvolvedor trabalhar com o buffer de caracteres de um objeto de cadeia de caracteres sem se preocupar com como ou quando chamar ReleaseBuffer
. Isso é possível porque o objeto wrapper sai do escopo naturalmente no caso de uma exceção ou de vários caminhos de código de saída, fazendo com que seu destruidor libere o recurso de cadeia de caracteres.
Requisitos
Cabeçalho: atlsimpstr.h
CStrBufT::AUTO_LENGTH
Determina automaticamente o novo comprimento da cadeia de caracteres na versão.
static const DWORD AUTO_LENGTH = 0x01;
Comentários
Determina automaticamente o novo comprimento da cadeia de caracteres na versão. A cadeia de caracteres deve ser encerrada em nulo.
CStrBufT::CStrBufT
Constrói um objeto do buffer.
CStrBufT(StringType& str, int nMinLength, DWORD dwFlags = AUTO_LENGTH) throw(...);
explicit CStrBufT(StringType& str) throw(...);
Parâmetros
str
O objeto de cadeia de caracteres associado ao buffer. Normalmente, o desenvolvedor usará os typedefs predefinidos de CStrBuf
(variante TCHAR), CStrBufA
(variante char
) e CStrBufW
(variante wchar_t
).
nMinLength
O comprimento mínimo do buffer de caracteres.
dwFlags
Especifica se o comprimento da cadeia de caracteres é determinado automaticamente. Um dos seguintes pode ser feito:
AUTO_LENGTH: o comprimento da cadeia de caracteres é determinado automaticamente quando CSimpleStringT::Release é chamado. A cadeia de caracteres deve ser encerrada em nulo. Valor padrão.
SET_LENGTH: o comprimento da cadeia de caracteres é definido quando CSimpleStringT::GetBuffer é chamado.
Comentários
Cria um buffer de cadeia de caracteres para o objeto de cadeia de caracteres associado. Durante a construção, CSimpleStringT::GetBuffer ou CSimpleStringT::GetBufferSetLength é chamado.
Observe que o construtor de cópia é private
.
CStrBufT::operator PCXSTR
Acessa diretamente caracteres armazenados no objeto de cadeia de caracteres como uma cadeia de caracteres no estilo C.
operator PCXSTR() const throw();
Valor de retorno
Um ponteiro de caractere para os dados da cadeia de caracteres.
Comentários
Chame essa função para retornar um ponteiro para o buffer de caracteres de um objeto de cadeia de caracteres. O conteúdo do objeto de cadeia de caracteres não pode ser alterado com esse ponteiro.
CStrBufT::operator PXSTR
Acessa diretamente caracteres armazenados no objeto de cadeia de caracteres como uma cadeia de caracteres no estilo C.
operator PXSTR() throw();
Valor de retorno
Um ponteiro de caractere para os dados da cadeia de caracteres.
Comentários
Chame essa função para retornar um ponteiro para o buffer de caracteres de um objeto de cadeia de caracteres. O desenvolvedor pode alterar o conteúdo do objeto de cadeia de caracteres com esse ponteiro.
CStrBufT::PCXSTR
Um ponteiro para uma cadeia de caracteres constante.
typedef CSimpleStringT<TCharType>::PCXSTR PCXSTR;
CStrBufT::PXSTR
Um ponteiro para uma cadeia de caracteres.
typedef CSimpleStringT<TCharType>::PXSTR PXSTR;
CStrBufT::SET_LENGTH
Define o comprimento do objeto de cadeia de caracteres no tempo GetBuffer
.
static const DWORD SET_LENGTH = 0x02;
Comentários
Define o comprimento do objeto de cadeia de caracteres no tempo GetBuffer.
Determina se CSimpleStringT::GetBuffer e CSimpleStringT::GetBufferSetLength são chamados quando o objeto do buffer de cadeia de caracteres é construído.
CStrBufT::SetLength
Define o comprimento mínimo do buffer de caracteres.
void SetLength(int nLength);
Parâmetros
nLength
O novo comprimento do buffer de caracteres do objeto de cadeia de caracteres.
Observação
Deve ser menor ou igual ao comprimento mínimo do buffer especificado no construtor de CStrBufT
.
Comentários
Chame essa função para definir o comprimento da cadeia de caracteres representada pelo objeto do buffer.
CStrBufT::StringType
O tipo de cadeia de caracteres cujo buffer deve ser manipulado por especializações desse modelo de classe.
typedef CSimpleStringT<TCharType> StringType;
Comentários
TCharType
é o tipo de caractere usado para especializar o modelo de classe.