Funzione SHAnsiToAnsi (shlwapi.h)
[Questa funzione è disponibile tramite Windows XP e Windows Server 2003. Potrebbe essere modificato o non disponibile nelle versioni successive di Windows.]
Copia una stringa ANSI.
Sintassi
int SHAnsiToAnsi(
[in] PCSTR pszSrc,
[out] PSTR pszDst,
int cchBuf
);
Parametri
[in] pszSrc
Tipo: LPCSTR
Puntatore a una stringa ANSI con terminazione Null da convertire in Unicode.
[out] pszDst
Tipo: LPWSTR
Puntatore a un buffer che, quando questa funzione viene restituita correttamente, riceve i caratteri copiati da pszSrc. Il buffer deve essere sufficientemente grande da contenere il numero di caratteri specificato dal parametro cchBuf , inclusa una stanza per un carattere Null di terminazione.
cchBuf
Tipo: int
Numero di caratteri che possono essere contenuti nel buffer a cui punta pszDst. Il valore del parametro deve essere maggiore di zero.
Valore restituito
Tipo: int
Restituisce il numero di caratteri scritti in pszDst, 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 pszDst non è sufficientemente grande da contenere il numero di caratteri specificato da cchBuf, 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 pszDst è un buffer basato su stack. Si noti che la stringa di output viene troncata automaticamente se il buffer non è sufficientemente grande. Ciò può comportare la canonizzazione o altre vulnerabilità di sicurezza.
Se il buffer pszDst 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 verrà sempre terminata con null, anche se è stata troncata. Questa funzione si occupa di non troncare tra i byte lead e trail di una coppia di caratteri DBCS. In tal caso, vengono restituiti solo i caratteri cchBuf-1.
Se i buffer pszSrc 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