Funzione SHUnicodeToAnsi (shlwapi.h)
[Questa funzione è disponibile tramite Windows XP e Windows Server 2003. Potrebbe essere modificato o non disponibile nelle versioni successive di Windows.]
Converte una stringa dalla tabella codici Unicode alla tabella codici ANSI.
Sintassi
int SHUnicodeToAnsi(
[in] PCWSTR pwszSrc,
[out] PSTR pszDst,
int cchBuf
);
Parametri
[in] pwszSrc
Tipo: PCWSTR
Puntatore alla stringa Unicode con terminazione null da convertire in ANSI.
[out] pszDst
Tipo: PSTR
Puntatore a un buffer che, quando questa funzione restituisce correttamente, riceve i caratteri convertiti. Il buffer deve essere abbastanza grande per contenere il numero di caratteri CHAR specificati dal parametro cchBuf , inclusa la stanza per un carattere null terminante.
cchBuf
Tipo: int
Numero di valori CHAR che possono essere contenuti dal buffer a cui fa riferimento pszDst. Il valore assegnato al parametro deve essere maggiore di zero.
Valore restituito
Tipo: int
Restituisce il numero di valori CHAR scritti nel buffer di output, incluso il carattere null terminante. Restituisce 0 se non è riuscito.
Commenti
Avviso di sicurezza: L'uso di questa funzione in modo errato può compromettere la sicurezza dell'applicazione. Ad esempio, se il buffer pszDst non è sufficiente per contenere il numero di caratteri specificati da cchBuf, può verificarsi un overrun del buffer. L'overrun del buffer può causare un attacco denial of service a un'applicazione se si verifica una violazione di accesso. Nel caso peggiore, un overrun del buffer potrebbe consentire a un utente malintenzionato di inserire codice eseguibile nel processo, soprattutto se pszDst è un buffer basato su stack. Inoltre, la stringa di output viene troncata in modo invisibile se è troppo grande per il buffer. Ciò può causare la canonizzazione o altre vulnerabilità di sicurezza.
Se il buffer pszDst non è abbastanza grande per contenere l'intera stringa di output convertita, la stringa viene troncata per adattare il buffer. Non è possibile rilevare che la stringa restituita è stata troncata. La stringa verrà sempre terminata con valore Null, anche se è stata troncata. Questa funzione si occupa di non troncare tra i byte di lead e trail di una coppia di caratteri DBCS. In tal caso, vengono restituiti solo i caratteri cchBuf-1.
Se i buffer pwszSrc e pszDst si sovrappongono, il comportamento della funzione non è definito.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional, Windows XP [solo app desktop] |
Server minimo supportato | Windows 2000 Server, Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | shlwapi.h |
DLL | Shlwapi.dll (versione 5.0 o successiva) |
Vedi anche
StringCchLength