Método CHString::GetBufferSetLength (chstring.h)

[La clase CHString forma parte del marco del proveedor de WMI que ahora se considera en estado final y no habrá más desarrollo, mejoras ni actualizaciones disponibles para problemas no relacionados con la seguridad que afecten a estas bibliotecas. Las API de MI deben usarse para todo el desarrollo nuevo.]

El método GetBufferSetLength devuelve un puntero al búfer de caracteres interno para el objeto CHString , truncando o aumentando su longitud si es necesario para coincidir exactamente con la longitud especificada en nNewLength.

Sintaxis

LPWSTR  throw(CHeap_Exception) GetBufferSetLength(
  int nNewLength
);

Parámetros

nNewLength

Tamaño exacto del búfer de caracteres CHString , medido en caracteres.

Valor devuelto

Devuelve un puntero LPWSTR al búfer de caracteres (terminado en NULL) del objeto.

Comentarios

El puntero LPWSTR devuelto, que no es const, permite la modificación directa del contenido de CHString .

Si usa el puntero devuelto por GetBuffer para cambiar el contenido de la cadena, debe llamar a ReleaseBuffer antes de usar cualquier otro método CHString .

Después de una llamada a ReleaseBuffer, es posible que la dirección devuelta por GetBufferSetLength no sea válida porque las operaciones chString adicionales pueden hacer que el búfer CHString se vuelva a asignar. Si no cambia la longitud de la cadena CHString , el búfer no se reasigna. La memoria del búfer se libera automáticamente cuando se destruye el objeto CHString .

Tenga en cuenta que si realiza un seguimiento de la longitud de la cadena usted mismo, no debe anexar el carácter NULL de terminación. Sin embargo, debe especificar la longitud final de la cadena al liberar el búfer con ReleaseBuffer. Si anexa un carácter NULL de terminación al llamar a ReleaseBuffer, debe pasar –1 (valor predeterminado) para la longitud. El método ReleaseBuffer llama a la función wcslen en el búfer para determinar su longitud.

Ejemplos

En el ejemplo de código siguiente se muestra el uso de CHString::GetBufferSetLength.

CHString str;
LPWSTR pstr = str.GetBufferSetLength(3);
pstr[0] = 'I';
pstr[1] = 'c';
pstr[2] = 'e';

// No need for trailing zero or call to ReleaseBuffer()
// because GetBufferSetLength() set it for you.

str += " hockey is best!";
printf( "str: %S\n", (LPCWSTR)str );

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado chstring.h (incluya FwCommon.h)
Library FrameDyn.lib
Archivo DLL FrameDynOS.dll; FrameDyn.dll

Consulte también

CHString

CHString::GetBuffer

CHString::ReleaseBuffer