Compartir a través de


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:

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

Vea también

Referencia

Clase de CSimpleStringT

CSimpleStringT::GetBuffer

CSimpleStringT::ReleaseBuffer