Funzione StringCbLengthA (strsafe.h)
Determina se una stringa supera la lunghezza specificata, espressa in byte.
StringCbLength è una sostituzione delle funzioni seguenti:
Sintassi
STRSAFEAPI StringCbLengthA(
[in] STRSAFE_PCNZCH psz,
[in] size_t cbMax,
[out] size_t *pcbLength
);
Parametri
[in] psz
Tipo: LPCTSTR
Stringa la cui lunghezza deve essere controllata.
[in] cbMax
Tipo: size_t
Numero massimo di byte consentiti in psz, inclusi quelli usati per il carattere null di terminazione. Questo valore non può superare STRSAFE_MAX_CCH * sizeof(TCHAR)
.
[out] pcbLength
Tipo: size_t*
Numero di byte in psz, esclusi quelli utilizzati per il carattere Null di terminazione. Questo valore è valido solo se il pcb non è NULL e la funzione ha esito positivo.
Valore restituito
Tipo: HRESULT
Questa funzione può restituire uno dei valori seguenti. È consigliabile utilizzare le macro SUCCEEDED e FAILED per testare il valore restituito di questa funzione.
Codice restituito | Descrizione |
---|---|
|
La stringa in psz non è NULL e la lunghezza della stringa (incluso il carattere null di terminazione) è minore o uguale ai caratteri cbMax . |
|
Il valore in psz è NULL, cbMax è maggiore di STRSAFE_MAX_CCH * sizeof(TCHAR) o psz è più lungo di cbMax.
|
Si noti che questa funzione restituisce un valore HRESULT , a differenza delle funzioni che sostituisce.
Commenti
Rispetto alle funzioni che sostituisce, StringCbLength è uno strumento aggiuntivo per la gestione corretta del buffer nel codice. La gestione del buffer insufficiente è implicata in molti problemi di sicurezza che comportano sovraccarichi del buffer.
StringCbLength può essere usato nel formato generico o nelle forme più specifiche. Il tipo di dati della stringa determina la forma di questa funzione da usare.
Tipo di dati String | Stringhe letterali | Funzione |
---|---|---|
char | "stringa" | StringCbLengthA |
TCHAR | TEXT("string") | StringCbLength |
WCHAR | L"string" | StringCbLengthW |
UnalignedStringCbLength è un alias per questa funzione.
Nota
L'intestazione strsafe.h definisce StringCbLength come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP con SP2 [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 con SP1 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | strsafe.h |