funzione StringCbVPrintf_lExA (strsafe.h)
Scrive i dati formattati nella stringa specificata usando un puntatore a un elenco di argomenti. Le dimensioni del buffer di destinazione vengono fornite alla funzione per assicurarsi che non venga scritto oltre la fine del buffer.
StringCbVPrintf_lEx è simile a StringCbVPrintfEx , ma include un parametro per le informazioni sulle impostazioni locali.
Sintassi
STRSAFEAPI StringCbVPrintf_lExA(
[out] STRSAFE_LPSTR pszDest,
[in] size_t cbDest,
[out] STRSAFE_LPSTR *ppszDestEnd,
[out, optional] size_t *pcbRemaining,
[in] DWORD dwFlags,
[in] _Printf_format_string_params_(2)STRSAFE_LPCSTR pszFormat,
[in] _locale_t locale,
[in] va_list argList
);
Parametri
[out] pszDest
Buffer di destinazione, che riceve la stringa con terminazione null formattata creata da pszFormat e argList.
[in] cbDest
Dimensioni del buffer di destinazione, in byte. Questo valore deve essere sufficientemente grande per contenere la stringa formattata finale e il carattere null terminante. Il numero massimo di byte consentiti è STRSAFE_MAX_CCH * sizeof(TCHAR)
.
[out] ppszDestEnd
Indirizzo di un puntatore alla fine di pszDest. Se ppszDestEnd non è NULL e tutti i dati vengono copiati nel buffer di destinazione, questo punta al carattere Null terminante alla fine della stringa.
[out, optional] pcbRemaining
Numero di byte inutilizzati in pszDest, inclusi quelli usati per il carattere null terminante. Se pcbRemaining è NULL, il conteggio non viene mantenuto o restituito.
[in] dwFlags
Uno o più dei valori seguenti.
[in] pszFormat
Stringa di formato. Questa stringa deve essere terminata con null. Per altre informazioni, vedere Sintassi della specifica del formato.
[in] locale
Oggetto delle impostazioni locali. Per altre informazioni, vedere _create_locale.
[in] argList
Argomenti da inserire nella stringa pszFormat .
Valore restituito
Questa funzione può restituire uno dei valori seguenti. È consigliabile usare le macro SUCCESSED e FAILED per testare il valore restituito di questa funzione.
Codice restituito | Descrizione |
---|---|
|
Il risultato deve essere copiato in pszDest senza troncamento e il buffer viene terminato con null. |
|
Il valore in cbDest è 0 o maggiore di STRSAFE_MAX_CCH * sizeof(TCHAR) oppure il buffer di destinazione è già pieno.
|
|
L'operazione di copia non è riuscita a causa di spazio buffer insufficiente. A seconda del valore di dwFlags, il buffer di destinazione può contenere una versione troncata e terminata null del risultato previsto. In situazioni in cui il troncamento è accettabile, questo potrebbe non essere necessariamente considerato come una condizione di errore. |
Commenti
Per altre informazioni sulle va_lists, vedere le convenzioni definite in Stdarg.h.
Il comportamento non è definito se le stringhe puntate da pszDest, pszFormat o qualsiasi stringa di argomento si sovrappone.
Né pszFormat né pszDest devono essere NULL a meno che non sia specificato il flag di STRSAFE_IGNORE_NULLS, in cui entrambi possono essere NULL. Tuttavia, un errore dovuto a spazio insufficiente può essere restituito anche se i valori NULL vengono ignorati.
Per usare questa funzione, è necessario definire la macro seguente nel file di intestazione, prima di includere StrSafe.h.
#define STRSAFE_LOCALE_FUNCTIONS
Nota
L'intestazione strsafe.h definisce StringCbVPrintf_lEx come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | strsafe.h |