次の方法で共有


CHString::Format(UINT,...) メソッド (chstring.h)

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

Format メソッドは、CHString 文字列内の一連の文字と値を書式設定して格納します。

構文

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

パラメーター

nFormatID

書式制御文字列を含む文字列リソース識別子。

...

引数リスト。

戻り値

CHeap_Exception

注釈

省略可能な各引数 (ある場合) は、 lpszFormat の対応する書式指定に従って、または nFormatID で識別される文字列リソースから変換および出力されます。

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

文字列オブジェクトが Format のパラメーターとして提供されている場合、呼び出しは失敗します。 たとえば、次のコードは予期しない結果を引き起こします。

CHString str = L"Some Data";

// Attention: str is also used in the parameter list.
str.Format(L"%s%d", str, 123);

メモ 省略可能な引数として文字列を渡す場合は、明示的に LPCWSTR としてキャストする必要があります。 format 引数の形式と関数は、printf 関数の format 引数と同じです。 書き込まれた文字の末尾に NULL 文字が追加されます。

要件

要件
Header chstring.h

こちらもご覧ください

CHString

CHString::GetBuffer