Condividi tramite


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.

Nota Non presupporre 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.
 
SHAnsiToTChar è definito come uguale a SHAnsiToUnicode.

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

MultiByteToWideChar

StringCbCopy

StringCbCopyEx

StringCbCopyN

StringCbCopyNEx

StringCbLength

StringCchCopy

StringCchCopyEx

StringCchCopyN

StringCchCopyNEx

StringCchLength