Clase IAtlStringMgr
Esta clase representa la interfaz de un administrador de memoria CStringT
.
Sintaxis
__interface IAtlStringMgr
Miembros
Métodos
Nombre | Descripción |
---|---|
Allocate | Llame a este método para asignar una nueva estructura de datos de cadena. |
Clonar | Llame a este método para devolver un puntero a un nuevo administrador de cadenas para usarlo con otra instancia de CSimpleStringT . |
Gratis | Llame a este método para liberar una estructura de datos de cadena. |
GetNilString | Devuelve un puntero al objeto CStringData utilizado por los objetos de cadena vacíos. |
Reallocate | Llame a este método para reasignar una estructura de datos de cadena. |
Comentarios
Esta interfaz administra la memoria utilizada por las clases de cadena independientes de MFC; por ejemplo, CSimpleStringT, CStringT y CFixedStringT.
También puede usar esta clase para implementar un administrador de memoria personalizado para la clase de cadena personalizada. Para más información, consulte Administración de memoria y CStringT.
Requisitos
Encabezado: atlsimpstr.h
IAtlStringMgr::Allocate
Asigna una nueva estructura de datos de cadena.
CStringData* Allocate(int nAllocLength,int nCharSize) throw();
Parámetros
nAllocLength
Número de caracteres del nuevo bloque de memoria.
nCharSize
Tamaño (en bytes) del tipo de carácter usado por el administrador de cadenas.
Valor devuelto
Devuelve un puntero al bloque de memoria recién asignado.
Nota:
No indique una asignación errónea iniciando una excepción. En su lugar, debe devolver NULL para indicar una asignación errónea.
Comentarios
Llame a IAtlStringMgr::Free o IAtlStringMgr::Reallocate para liberar la memoria asignada por este método.
Nota:
Para obtener ejemplos de uso, consulte Administración de memoria y CStringT.
IAtlStringMgr::Clone
Devuelve un puntero a un nuevo administrador de cadenas para usarlo con otra instancia de CSimpleStringT
.
IAtlStringMgr* Clone() throw();
Valor devuelto
Devuelve una copia del objeto IAtlStringMgr
.
Comentarios
Normalmente, lo llama el marco de trabajo cuando se necesita un administrador de cadenas para una nueva cadena. En la mayoría de los casos, se devuelve el puntero this
.
Sin embargo, si el administrador de memoria no admite su uso por parte de varias instancias de CSimpleStringT
, se debe devolver un puntero a un administrador de cadenas que se pueda compartir.
Nota:
Para obtener ejemplos de uso, consulte Administración de memoria y CStringT.
IAtlStringMgr::Free
Libera una estructura de datos de cadena.
void Free(CStringData* pData) throw();
Parámetros
pData
Puntero al bloque de memoria que se va a liberar.
Comentarios
Libera el bloque de memoria especificado asignado previamente por Allocate o Reallocate.
Nota:
Para obtener ejemplos de uso, consulte Administración de memoria y CStringT.
IAtlStringMgr::GetNilString
Devuelve un puntero a una estructura de datos de cadena para una cadena vacía.
CStringData* GetNilString() throw();
Valor devuelto
Puntero al objeto CStringData
utilizado para representar una cadena vacía.
Comentarios
Llame a esta función para devolver una representación de una cadena vacía.
Nota:
Al implementar un administrador de cadenas personalizado, esta función nunca debe producir un error. Para asegurarse de ello, inserte una instancia de CNilStringData
en la clase del administrador de cadenas y devuelva un puntero a esa instancia.
Nota:
Para obtener ejemplos de uso, consulte Administración de memoria y CStringT.
IAtlStringMgr::Reallocate
Reasigna una estructura de datos de cadena.
CStringData* Reallocate(
CStringData* pData,
int nAllocLength,
int nCharSize) throw();
Parámetros
pData
Puntero a la memoria previamente asignada por este administrador de memoria.
nAllocLength
Número de caracteres del nuevo bloque de memoria.
nCharSize
Tamaño (en bytes) del tipo de carácter usado por el administrador de cadenas.
Valor devuelto
Devuelve un puntero al principio del bloque de memoria recién asignado.
Comentarios
Llame a esta función para cambiar el tamaño del bloque de memoria existente especificado por pData.
Llame a IAtlStringMgr::Free para liberar la memoria asignada por este método.
Nota:
Para obtener ejemplos de uso, consulte Administración de memoria y CStringT.