Condividi tramite


Metodo CHString::FormatMessageW(UINT,...) (chstring.h)

[La classe CHString fa parte di WMI Provider Framework, che viene ora considerata in stato finale e non saranno disponibili ulteriori sviluppi, miglioramenti o aggiornamenti per problemi non correlati alla sicurezza che interessano queste librerie. Le API MI devono essere usate per tutti i nuovi sviluppi.

Il metodo FormatMessageW formatta una stringa di messaggio.

Sintassi

void  throw(CHeap_Exception) FormatMessageW(
  UINT nFormatID,
  ...  
);

Parametri

nFormatID

Identificatore di risorsa stringa che contiene il testo del messaggio non formattato.

...

Elenco di argomenti.

Valore restituito

CHeap_Exception

Commenti

Il metodo FormatMessageW richiede una definizione di messaggio come input. La definizione del messaggio è determinata da lpszFormat o dalla risorsa stringa identificata da nFormatID. Il metodo copia il testo del messaggio formattato nella stringa CHString , elaborando eventuali sequenze di inserimento incorporate, se richiesto.

Ogni inserimento deve avere un parametro corrispondente che segue il parametro lpszFormat o nFormatID . All'interno del testo del messaggio sono supportate diverse sequenze di escape per la formattazione dinamica del messaggio. Per una descrizione di queste sequenze di escape e dei relativi significati, vedere l'argomento relativo alla funzione FormatMessage di Windows.

Nota Per ridurre l'esposizione agli attacchi di sicurezza, usare sempre una stringa di formato per FormatMessageW. Ad esempio, FormatMessageW(input) è sfruttabile e FormatMessageW("%s", input) non è. Non usare mai una stringa fornita dall'utente per la stringa di formato. Se la stringa di formato viene archiviata a scopo di localizzazione, assicurarsi che la stringa sia protetta dall'accesso in scrittura non autorizzato. Se la funzione scrive in una stringa anziché in un output standard, potrebbe essere necessario evitare di usare una stringa finale "%s" nella stringa di formato.

Esempio

L'esempio di codice seguente illustra come usare CHString::FormatMessageW.

CHString str;
int nAsked = 5;
int nAgree = 4;

str.FormatMessageW(L"%1!d! of %2!d! developers agree: Golf is %3%!", 
   nAgree, nAsked, L"Best");
assert(str == L"4 of 5 developers agree: Golf is Best!");

Requisiti

Requisito Valore
Intestazione chstring.h

Vedi anche

CHString

CHString::Format