次の方法で共有


CHString::FormatMessageW(LPCWSTR,...) メソッド (chstring.h)

[CHString クラスは WMI プロバイダー フレームワークの一部であり、現在最終的な状態と見なされています。これらのライブラリに影響を与える、セキュリティ関連以外の問題に対しては、それ以上の開発、機能強化、または更新プログラムは利用できません。 すべての新しい開発には、MI API を使用する必要があります。]

FormatMessageW メソッドは、メッセージ文字列を書式設定します。

構文

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

パラメーター

lpszFormat

正式なコントロール文字列へのポインター。 コントロール文字列は挿入のためにスキャンされ、それに応じて書式設定されます。 書式指定文字列はランタイム関数 printf スタイルの書式指定文字列に似ていますが、 printf ではパラメーターを任意の順序で挿入できる点が除きます。

...

引数リスト。

戻り値

CHeap_Exception

注釈

FormatMessageW メソッドには、入力としてメッセージ定義が必要です。 メッセージ定義は lpszFormat、または nFormatID で識別される文字列リソースによって決定されます。 メソッドは、書式設定されたメッセージ テキストを CHString 文字列にコピーし、要求された場合は埋め込み挿入シーケンスを処理します。

各挿入には、 lpszFormat または nFormatID パラメーターの後に対応するパラメーターが必要です。 メッセージ テキスト内では、メッセージを動的に書式設定するための複数のエスケープ シーケンスがサポートされています。 これらのエスケープ シーケンスとその意味の詳細と説明については、 FormatMessage 関数のトピックを参照してください。

メモ セキュリティの脆弱性を軽減するには、常に FormatMessageW の書式指定文字列を使用します。 たとえば、 FormatMessageW(input) は悪用可能であり、 FormatMessageW("%s", input) は利用できません。 書式指定文字列には、ユーザー指定の文字列を使用しないでください。 ローカライズなどの目的で書式指定文字列が格納されている場合は、文字列が未承認の書き込みアクセスから保護されていることを確認します。 関数が標準出力ではなく文字列に書き込む場合は、書式指定文字列で末尾の "%s" を使用しないようにする必要がある場合があります。

次のコード例は、 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!");

要件

要件
Header chstring.h

こちらもご覧ください

CHString

CHString::Format