Compartir a través de


Función StringCbLengthA (strsafe.h)

Determina si una cadena supera la longitud especificada, en bytes.

StringCbLength es un reemplazo de las siguientes funciones:

Sintaxis

STRSAFEAPI StringCbLengthA(
  [in]  STRSAFE_PCNZCH psz,
  [in]  size_t         cbMax,
  [out] size_t         *pcbLength
);

Parámetros

[in] psz

Tipo: LPCTSTR

Cadena cuya longitud se va a comprobar.

[in] cbMax

Tipo: size_t

Número máximo de bytes permitidos en psz, incluidos los usados para el carácter nulo de terminación. Este valor no puede superar STRSAFE_MAX_CCH * sizeof(TCHAR).

[out] pcbLength

Tipo: size_t*

Número de bytes en psz, excluidos los usados para el carácter nulo de terminación. Este valor solo es válido si pcb no es NULL y la función se realiza correctamente.

Valor devuelto

Tipo: HRESULT

Esta función puede devolver uno de los valores siguientes. Se recomienda encarecidamente usar las macros SUCCEEDED y FAILED para probar el valor devuelto de esta función.

Código devuelto Descripción
S_OK
La cadena en psz no era NULL y la longitud de la cadena (incluido el carácter nulo de terminación) es menor o igual que los caracteres cbMax .
STRSAFE_E_INVALID_PARAMETER
El valor de psz es NULL, cbMax es mayor que STRSAFE_MAX_CCH * sizeof(TCHAR), o psz es mayor que cbMax.
 

Tenga en cuenta que esta función devuelve un valor HRESULT , a diferencia de las funciones que reemplaza.

Comentarios

En comparación con las funciones que reemplaza, StringCbLength es una herramienta adicional para el control adecuado del búfer en el código. El control deficiente del búfer está implicado en muchos problemas de seguridad que implican saturaciones del búfer.

StringCbLength se puede usar en su forma genérica o en sus formularios más específicos. El tipo de datos de la cadena determina la forma de esta función que debe usar.

String (Tipo de datos) Literal de cadena Función
char "cadena" StringCbLengthA
TCHAR TEXT("string") StringCbLength
WCHAR L"string" StringCbLengthW
 

UnalignedStringCbLength es un alias para esta función.

Nota

El encabezado strsafe.h define StringCbLength como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP con SP2 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 con SP1 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado strsafe.h

Consulte también

StringCchLength