Función SHUnicodeToAnsi (shlwapi.h)
[Esta función está disponible a través de Windows XP y Windows Server 2003. Es posible que se modifique o no esté disponible en versiones posteriores de Windows.
Convierte una cadena de la página de códigos Unicode en la página de códigos ANSI.
Sintaxis
int SHUnicodeToAnsi(
[in] PCWSTR pwszSrc,
[out] PSTR pszDst,
int cchBuf
);
Parámetros
[in] pwszSrc
Tipo: PCWSTR
Puntero a la cadena Unicode terminada en null que se va a convertir en ANSI.
[out] pszDst
Tipo: PSTR
Puntero a un búfer que, cuando esta función devuelve correctamente, recibe los caracteres convertidos. El búfer debe ser lo suficientemente grande como para contener el número de caracteres CHAR especificados por el parámetro cchBuf , incluido el espacio para un carácter nulo de terminación.
cchBuf
Tipo: int
Número de valores CHAR que puede contener el búfer al que apunta pszDst. El valor asignado al parámetro debe ser mayor que cero.
Valor devuelto
Tipo: int
Devuelve el número de valores CHAR escritos en el búfer de salida, incluido el carácter nulo de terminación. Devuelve 0 si no se realiza correctamente.
Comentarios
Advertencia de seguridad: El uso incorrecto de esta función puede poner en peligro la seguridad de la aplicación. Por ejemplo, si el búfer pszDst no es lo suficientemente grande como para contener el número de caracteres especificados por cchBuf, se puede producir una saturación del búfer. Las saturaciones de búfer pueden provocar un ataque de denegación de servicio contra una aplicación si se produce una infracción de acceso. En el peor de los casos, una saturación de búfer podría permitir que un atacante inserte código ejecutable en el proceso, especialmente si pszDst es un búfer basado en pila. Además, la cadena de salida se trunca silenciosamente si es demasiado grande para el búfer. Esto puede causar canónica u otras vulnerabilidades de seguridad.
Si el búfer pszDst no es lo suficientemente grande como para contener toda la cadena de salida convertida, la cadena se trunca para ajustarse al búfer. No hay ninguna manera de detectar que la cadena de devolución se ha truncado. La cadena siempre estará terminada en null, incluso si se ha truncado. Esta función se encarga de no truncar entre los bytes inicial y final de un par de caracteres DBCS. En ese caso, solo se devuelven caracteres cchBuf-1.
Si los búferes pwszSrc y pszDst se superponen, el comportamiento de la función no está definido.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional, Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server, Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | shlwapi.h |
Archivo DLL | Shlwapi.dll (versión 5.0 o posterior) |
Consulte también
StringCchLength