Condividi tramite


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.

Nota Non si supponga che la funzione non abbia modificato alcun carattere nel buffer di output che segue il carattere null di terminazione della stringa. Il contenuto del buffer di output che segue il carattere null di terminazione della stringa non è definito, fino a e include l'ultimo carattere nel buffer.
 
SHTCharToAnsi è definito come uguale a SHUnicodeToAnsi.

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

StringCbCopy

StringCbCopyEx

StringCbCopyN

StringCbCopyNEx

StringCbLength

StringCchCopy

StringCchCopyEx

StringCchCopyN

StringCchCopyNEx

StringCchLength