Función SHAnsiToAnsi (shlwapi.h)

[Esta función está disponible a través de Windows XP y Windows Server 2003. Puede modificarse o no estar disponible en versiones posteriores de Windows.

Copia una cadena ANSI.

Sintaxis

int SHAnsiToAnsi(
  [in]  PCSTR pszSrc,
  [out] PSTR  pszDst,
        int   cchBuf
);

Parámetros

[in] pszSrc

Tipo: LPCSTR

Puntero a una cadena ANSI terminada en null que se va a convertir en Unicode.

[out] pszDst

Tipo: LPWSTR

Puntero a un búfer que, cuando esta función vuelve correctamente, recibe los caracteres copiados de pszSrc. El búfer debe ser lo suficientemente grande como para contener el número de caracteres especificados por el parámetro cchBuf , incluida una sala para un carácter nulo de terminación.

cchBuf

Tipo: int

Número de caracteres que puede contener el búfer al que apunta pszDst. Este parámetro debe ser mayor que cero.

Valor devuelto

Tipo: int

Devuelve el número de caracteres escritos en pszDst, 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 especificado 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 del búfer podría permitir que un atacante inserte código ejecutable en el proceso, especialmente si pszDst es un búfer basado en la pila. Tenga en cuenta que la cadena de salida se trunca silenciosamente si el búfer no es lo suficientemente grande. Esto puede dar lugar a la canonización 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 pszSrc 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 el 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.
 

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