Condividi tramite


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.

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.
 

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