Freigeben über


CHString::FormatMessageW(LPCWSTR,...)-Methode (chstring.h)

[Die Klasse CHString ist Teil des WMI-Provider-Frameworks, das nun als endgültig betrachtet wird, und es sind keine weiteren Entwicklungen, Verbesserungen oder Updates für nicht sicherheitsrelevante Probleme verfügbar, die diese Bibliotheken betreffen. Die MI-APIs sollten für alle Neuentwicklungen verwendet werden.]

Die FormatMessageW-Methode formatiert eine Nachrichtenzeichenfolge.

Syntax

void  throw(CHeap_Exception) FormatMessageW(
  LPCWSTR lpszFormat,
  ...     
);

Parameter

lpszFormat

Ein Zeiger auf die formale Steuerelementzeichenfolge. Die Steuerelementzeichenfolge wird auf Einfügungen überprüft und entsprechend formatiert. Die Formatzeichenfolge ähnelt der Laufzeitfunktion printf-Formatzeichenfolgen, mit der Ausnahme, dass printf das Einfügen der Parameter in beliebiger Reihenfolge zulässt.

...

Argumentliste.

Rückgabewert

CHeap_Exception

Hinweise

Die FormatMessageW-Methode erfordert eine Nachrichtendefinition als Eingabe. Die Nachrichtendefinition wird durch lpszFormat oder aus der durch nFormatID identifizierten Zeichenfolgenressource bestimmt. Die -Methode kopiert den formatierten Nachrichtentext in die CHString-Zeichenfolge und verarbeitet bei Bedarf alle eingebetteten Einfügesequenzen.

Jede Einfügung muss über einen entsprechenden Parameter verfügen, der dem lpszFormat- oder nFormatID-Parameter folgt. Innerhalb des Nachrichtentexts werden mehrere Escapesequenzen zum dynamischen Formatieren der Nachricht unterstützt. Weitere Informationen und eine Beschreibung dieser Escapesequenzen und ihrer Bedeutung finden Sie im Thema der FormatMessage-Funktion .

Hinweis Verwenden Sie immer eine Formatzeichenfolge für FormatMessageW, um sicherheitsrelevante Sicherheitsrisiken zu verringern. Beispielsweise ist FormatMessageW(input) ausnutzbar und FormatMessageW("%s", input) nicht. Verwenden Sie niemals eine vom Benutzer bereitgestellte Zeichenfolge für die Formatzeichenfolge. Wenn Ihre Formatzeichenfolge für einen Zweck wie die Lokalisierung gespeichert wird, stellen Sie sicher, dass die Zeichenfolge vor nicht autorisiertem Schreibzugriff geschützt ist. Wenn Ihre Funktion in eine Zeichenfolge anstatt in eine Standardausgabe schreibt, müssen Sie möglicherweise die Verwendung eines nachgestellten "%s" in der Formatzeichenfolge vermeiden.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie ChString::FormatMessageW verwendet wird.

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!");

Anforderungen

Anforderung Wert
Header chstring.h

Weitere Informationen

CHString

CHString::Format