Funzione SHAnsiToUnicode (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 ANSI alla tabella codici Unicode.
Sintassi
int SHAnsiToUnicode(
[in] PCSTR pszSrc,
[out] PWSTR pwszDst,
int cwchBuf
);
Parametri
[in] pszSrc
Tipo: PCSTR
Puntatore a una stringa ANSI con terminazione Null da convertire in Unicode.
[out] pwszDst
Tipo: PWSTR
Puntatore a un buffer che, quando questa funzione viene restituita correttamente, riceve la stringa specificata da pszSrc, dopo che i caratteri ANSI sono stati convertiti in Unicode (WCHAR). Il buffer deve essere sufficientemente grande da contenere il numero di caratteri Unicode specificati dal parametro cwchBuf , incluso un carattere null di terminazione.
cwchBuf
Tipo: int
Numero di caratteri Unicode che possono essere contenuti nel buffer a cui punta pwszDst. Il valore del parametro deve essere maggiore di zero.
Valore restituito
Tipo: int
Restituisce il numero di caratteri Unicode scritti in pwszDst, incluso il carattere null di terminazione. Restituisce 0 in caso di esito negativo.
Commenti
Avviso di sicurezza: L'uso di questa funzione in modo non corretto può compromettere la sicurezza dell'applicazione. Ad esempio, se il buffer pwszDst non è sufficientemente grande da contenere il numero di caratteri specificato da cwchBuf, può verificarsi un sovraccarico del buffer. I sovraccarichi del buffer possono causare un attacco Denial of Service a un'applicazione se si verifica una violazione di accesso. Nel peggiore dei casi, un sovraccarico del buffer potrebbe consentire a un utente malintenzionato di inserire codice eseguibile nel processo, soprattutto se pwszDst è un buffer basato su stack. Quando si copia un'intera stringa, si noti che sizeof restituisce il numero di byte, che non è il valore corretto da usare per il parametro cwchBuf . Usare invece sizeof(pwszDst)/sizeof(WCHAR). Si noti che questa tecnica presuppone che pwszDst sia una matrice, non un puntatore.
Se il buffer pwszDst non è sufficientemente grande da contenere l'intera stringa di output convertita, la stringa viene troncata per adattarsi al buffer. Non è possibile rilevare che la stringa restituita è stata troncata. La stringa è sempre con terminazione Null, anche se è stata troncata. Ciò garantisce che non vengano copiati più caratteri cwchBuf in pwszDst. Non viene effettuato alcun tentativo di evitare di troncare la stringa al centro di una coppia di surrogati Unicode.
Se i buffer pszSrc e pwszDst 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