CStringT::FormatMessage
更新 : 2007 年 11 月
メッセージ文字列を書式化します。
void __cdecl FormatMessage(
UINT nFormatID,
[, argument]...
);
void __cdecl FormatMessage(
PCXSTR pszFormat,
[, argument]...
);
パラメータ
nFormatID
書式化されていないメッセージ テキストを持つ文字列リソース識別子。pszFormat
書式指定文字列。書式指定文字列は挿入するためにスキャンされ、その結果に応じて書式化されます。この書式指定文字列は、パラメータを任意の順番に挿入できることを除いて、ランタイム関数 printf スタイルの書式指定文字列と同じです。argument
省略可能な引数。
解説
この関数にはメッセージ定義を入力する必要があります。メッセージ定義は、pszFormat、または nFormatID によって識別される文字列リソースにより決まります。この関数は、必要に応じて埋め込まれた挿入順序に従って処理しながら、書式化されたメッセージ テキストを CStringT オブジェクトにコピーします。
メモ : |
---|
FormatMessage は、新しく書式化された文字列のシステム メモリを割り当てようとします。メモリの割り当てができなかったときは、メモリ例外が自動的にスローされます。 |
挿入される項目ごとに pszFormat のパラメータまたは nFormatID のパラメータに対応するパラメータが必ず必要です。メッセージ テキスト内には、メッセージの動的書式化をサポートするいくつかのエスケープ シーケンスがあります。詳細については、Windows SDK の「FormatMessage 関数」を参照してください。
使用例
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString str;
int nAsked = 5;
int nAgree = 4;
str.FormatMessage(_T("%1!d! of %2!d! writers agree: Soccer is %3%!"),
nAgree, nAsked, _T("Best"));
ASSERT(str == _T("4 of 5 writers agree: Soccer is Best!"));
必要条件
ヘッダー : cstringt.h