Clase CStrBufT
Esta clase proporciona limpieza automática de recursos para GetBuffer
y ReleaseBuffer
llama a en un objeto CStringT
existente.
Sintaxis
template<typename TCharType>
class CStrBufT
Parámetros
TCharType
Tipo de carácter de la clase CStrBufT
. Puede ser uno de los siguientes:
char
(para cadenas de caracteres ANSI)wchar_t
(para cadenas de caracteres Unicode)TCHAR
(para cadenas de caracteres ANSI y Unicode).
Miembros
Definiciones de tipos públicas
Nombre | Descripción |
---|---|
PCXSTR |
Puntero a una cadena constante. |
PXSTR |
Puntero a una cadena. |
StringType |
Tipo de cadena cuyo búfer se va a manipular mediante especializaciones de esta plantilla de clase. |
Constructores públicos
Nombre | Descripción |
---|---|
CStrBufT::CStrBufT | Constructor del objeto de búfer de cadena. |
Métodos públicos
Nombre | Descripción |
---|---|
CStrBufT::SetLength | Establece la longitud del búfer de caracteres del objeto de cadena asociado. |
Operadores públicos
Nombre | Descripción |
---|---|
CStrBufT::operator PCXSTR | Recupera un puntero const al búfer de caracteres del objeto de cadena asociado. |
CStrBufT::operator PXSTR | Recupera un puntero al búfer de caracteres del objeto de cadena asociado. |
Constantes públicas
Nombre | Descripción |
---|---|
CStrBufT::AUTO_LENGTH | Determine de forma automática la nueva longitud de la cadena en versión. |
CStrBufT::SET_LENGTH | Establezca la longitud del objeto de cadena en el tiempo de GetBuffer |
Comentarios
Esta clase se usa como clase contenedora para reemplazar las llamadas a GetBuffer y ReleaseBuffer, o GetBufferSetLength y ReleaseBuffer
.
Diseñada principalmente como clase auxiliar, CStrBufT
proporciona una manera cómoda de que un desarrollador trabaje con el búfer de caracteres de un objeto de cadena sin preocuparse por cómo o cuándo llamar a ReleaseBuffer
. Esto es posible porque el objeto contenedor sale del ámbito de forma natural en el caso de una excepción o varias rutas de acceso de código de salida; lo que hace que su destructor libere el recurso de cadena.
Requisitos
Encabezado: atlsimpstr.h
CStrBufT::AUTO_LENGTH
Determine de forma automática la nueva longitud de la cadena en versión.
static const DWORD AUTO_LENGTH = 0x01;
Comentarios
Determine de forma automática la nueva longitud de la cadena en versión. La cadena debe terminar en null.
CStrBufT::CStrBufT
Construye un objeto de búfer.
CStrBufT(StringType& str, int nMinLength, DWORD dwFlags = AUTO_LENGTH) throw(...);
explicit CStrBufT(StringType& str) throw(...);
Parámetros
str
Objeto de cadena asociado al búfer. Normalmente, el desarrollador usará las definiciones de tipo predefinidas de CStrBuf
(variante TCHAR), CStrBufA
(variante char
) y CStrBufW
(variante wchar_t
).
nMinLength
Longitud mínima del búfer de caracteres.
dwFlags
Determina si la longitud de la cadena se determina de forma automática. Puede ser uno de los siguientes:
AUTO_LENGTH La longitud de cadena se determina de forma automática cuando se llama a CSimpleStringT::Release. La cadena debe terminar en null. Valor predeterminado.
SET_LENGTH La longitud de cadena se establece cuando se llama a CSimpleStringT::GetBuffer.
Comentarios
Crea un búfer de cadena para el objeto de cadena asociado. Durante la construcción, se llama a CSimpleStringT::GetBuffer o CSimpleStringT::GetBufferSetLength.
Tenga en cuenta que el constructor de copia es private
.
CStrBufT::operator PCXSTR
Accede directamente a los caracteres almacenados en el objeto de cadena asociado como una cadena de estilo C.
operator PCXSTR() const throw();
Valor devuelto
Puntero de caracteres a los datos de la cadena.
Comentarios
Llame a esta función para devolver un puntero al búfer de caracteres de un objeto de cadena. El contenido del objeto de cadena no se puede cambiar con este puntero.
CStrBufT::operator PXSTR
Accede directamente a los caracteres almacenados en el objeto de cadena asociado como una cadena de estilo C.
operator PXSTR() throw();
Valor devuelto
Puntero de caracteres a los datos de la cadena.
Comentarios
Llame a esta función para devolver un puntero al búfer de caracteres de un objeto de cadena. El desarrollador puede cambiar el contenido del objeto de cadena con este puntero.
CStrBufT::PCXSTR
Puntero a una cadena constante.
typedef CSimpleStringT<TCharType>::PCXSTR PCXSTR;
CStrBufT::PXSTR
Puntero a una cadena.
typedef CSimpleStringT<TCharType>::PXSTR PXSTR;
CStrBufT::SET_LENGTH
Establezca la longitud del objeto de cadena en el tiempo de GetBuffer
.
static const DWORD SET_LENGTH = 0x02;
Comentarios
Establezca la longitud del objeto de cadena en el tiempo de GetBuffer.
Determina si se llama a CSimpleStringT::GetBuffer y CSimpleStringT::GetBufferSetLength cuando se construye el objeto de búfer de cadena.
CStrBufT::SetLength
Establece la longitud del búfer de caracteres.
void SetLength(int nLength);
Parámetros
nLength
Nueva longitud del búfer de caracteres del objeto de cadena.
Nota:
Debe ser menor o igual que la longitud mínima del búfer especificada en el constructor de CStrBufT
.
Comentarios
Llame a esta función para establecer la longitud de la cadena representada por el objeto de búfer.
CStrBufT::StringType
Tipo de cadena cuyo búfer se va a manipular mediante especializaciones de esta plantilla de clase.
typedef CSimpleStringT<TCharType> StringType;
Comentarios
TCharType
es el tipo de carácter que se usa para especializar la plantilla de clase.