Compartir a través de


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.

Nota No suponga que la función no ha cambiado ninguno de los caracteres del búfer de salida que siguen al carácter nulo de terminación de la cadena. El contenido del búfer de salida que sigue al carácter NULO de terminación de la cadena no está definido, hasta el último carácter del búfer e incluye el último carácter del búfer.
 
SHTCharToAnsi se define para que sea igual que SHUnicodeToAnsi.

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

StringCbCopy

StringCbCopyEx

StringCbCopyN

StringCbCopyNEx

StringCbLength

StringCchCopy

StringCchCopyEx

StringCchCopyN

StringCchCopyNEx

StringCchLength