CSimpleStringT::GetBufferSetLength
Devuelve un puntero al búfer interno de carácter para el objeto de CSimpleStringT , truncando o aumentando la longitud en caso necesario coincidan exactamente con la longitud especificada en nLength.
PXSTR GetBufferSetLength(
int nLength
);
Parámetros
- nLength
El tamaño exacto del búfer del carácter de CSimpleStringT en caracteres.
Valor devuelto
Un puntero de PXSTR en el búfer (terminado en null) de caracteres del objeto.
Comentarios
Llame a este método para recuperar una longitud especificada del búfer interno del objeto de CSimpleStringT .El puntero devuelto de PXSTR no es const y no permite así la modificación directa del contenido de CSimpleStringT .
Si utiliza el puntero devuelto por GetBufferSetLength para cambiar el contenido de la cadena, llamada ReleaseBuffer para actualizar el estado interno de CsimpleStringTantes de usar cualquier otro método de CSimpleStringT .
La dirección devuelta por GetBufferSetLength puede no ser válida después de la llamada a ReleaseBuffer porque las operaciones adicionales de CSimpleStringT pueden hacer que el búfer de CSimpleStringT que se reasignara.El búfer no se reasigna si no cambia la longitud de CSimpleStringT.
Memoria de búfer automáticamente se libera cuando se destruye el objeto de CSimpleStringT .
Si no realiza un seguimiento de la longitud de la cadena personalmente, no anexa el carácter null de terminación.Debe especificar la longitud final de la cadena cuando suelte el búfer mediante ReleaseBuffer.Si anexa un carácter null de terminación cuando se llama a ReleaseBuffer, step – 1 (valor predeterminado) para la longitud a ReleaseBuffer, y ReleaseBuffer realizará strlen en el búfer para determinar su longitud.
Para obtener más información sobre el recuento de referencias, vea los artículos siguientes:
Administrar duraciones de objeto con el recuento de referencias en Windows SDK*.*
Implementar el recuento de referencias en Windows SDK*.*
Reglas para administrar los recuentos de referencias en Windows SDK*.*
Ejemplo
El siguiente ejemplo muestra el uso de CSimpleStringT::GetBufferSetLength.
CSimpleString str(pMgr);
LPTSTR pstr = str.GetBufferSetLength(3);
pstr[0] = _T('C');
pstr[1] = _T('u');
pstr[2] = _T('p');
// No need for trailing zero or call to ReleaseBuffer()
// because GetBufferSetLength() set it for us.
str += _T(" soccer is best!");
ASSERT(_tcscmp(str, _T("Cup soccer is best!")) == 0);
Requisitos
encabezado: atlsimpstr.h