ATLTRACE2
指定されたフラグとレベルに応じて、デバッガー ウィンドウなどの出力デバイスに警告を送ります。
ATLTRACE2( exp );
ATLTRACE2(
DWORD category,
UINT level,
LPCSTR lpszFormat,
...
);
パラメーター
exp
[入力] Visual C++ の出力ウィンドウまたはこれらのメッセージをトラップするアプリケーションに送る文字列と変数。category
[入力] 報告するイベントまたはメソッドの種類。 カテゴリの一覧については、「解説」を参照してください。level
[入力] レポートのトレース レベル。 詳細については、「解説」を参照してください。lpszFormat
[入力] ダンプ デバイスに送る書式付き文字列。
解説
ATLTRACE2 の短い形式は、デバッガーの出力ウィンドウに出力されます。 ATLTRACE2 の 2 番目の形式もデバッガーの出力ウィンドウに出力されますが、ATL/MFC Trace Tool (「ATLTraceTool サンプル : ATLTRACE2 の出力の表示」を参照) の設定の影響を受けます。 たとえば、level を 4、ATL/MFC Trace Tool をレベル 0 に設定すると、メッセージは表示されません。 level は 0、1、2、3、4 のいずれかに設定できます。 既定値は 0 で、最も重大な問題だけが報告されます。
category パラメーターには、設定するトレース フラグが表示されます。 レポート対象のメソッドの種類に対応して、各種のフラグが用意されています。 category パラメーターに指定できるトレース フラグを次の表に示します。
ATL トレース フラグ
ATL カテゴリ |
説明 |
---|---|
atlTraceGeneral |
すべての ATL アプリケーションについて報告します。 既定値。 |
atlTraceCOM |
COM メソッドについて報告します。 |
atlTraceQI |
QueryInterface 呼び出しについて報告します。 |
atlTraceRegistrar |
オブジェクトの登録について報告します。 |
atlTraceRefcount |
参照カウントの変化について報告します。 |
atlTraceWindowing |
ウィンドウ関連メソッドについて報告します。たとえば、無効なメッセージ マップ ID を知らせます。 |
atlTraceControls |
コントロールについて報告します。たとえば、コントロールまたはそのウィンドウが破棄されたことを知らせます。 |
atlTraceHosting |
ホスト メッセージについて報告します。たとえば、コンテナー内でクライアントがアクティブになったことを知らせます。 |
atlTraceDBClient |
OLE DB コンシューマー テンプレートについて報告します。たとえば、GetData 呼び出しが失敗したとき、その HRESULT 値を報告します。 |
atlTraceDBProvider |
OLE DB プロバイダー テンプレートについて報告します。たとえば、列の作成に失敗したことを知らせます。 |
atlTraceSnapin |
MMC スナップイン アプリケーションについて報告します。 |
atlTraceNotImpl |
実装されていない関数を報告します。 |
atlTraceAllocation |
atldbgmem.h でメモリ デバッグ ツールによって出力されるメッセージを報告します。 |
MFC トレース フラグ
MFC カテゴリ |
説明 |
---|---|
traceAppMsg |
汎用の MFC メッセージです。 このメッセージを常に使用することをお勧めします。 |
traceDumpContext |
CDumpContext からのメッセージです。 |
traceWinMsg |
MFC のメッセージ処理コードからのメッセージです。 |
traceMemory |
MFC のメモリ管理コードからのメッセージです。 |
traceCmdRouting |
MFC の Windows コマンド ルーティング コードからのメッセージです。 |
traceHtml |
MFC の DHTML ダイアログ サポートからのメッセージです。 |
traceSocket |
MFC のソケット サポートからのメッセージです。 |
traceOle |
MFC の OLE サポートからのメッセージです。 |
traceDatabase |
MFC のデータベース サポートからのメッセージです。 |
traceInternet |
MFC のインターネット サポートからのメッセージです。 |
カスタム トレース カテゴリを宣言するには、次のように CTraceCategory クラスのグローバル インスタンスを宣言してください。
CTraceCategory MY_CATEGORY(_T("MyCategoryName"), 1);
この例のカテゴリ名 MY_CATEGORY は、category パラメーターに対して指定する名前です。 最初のパラメーターは、ATL/MFC Trace Tool に表示されるカテゴリ名です。 2 番目のパラメーターは、既定のトレース レベルです。 このパラメーターは省略可能であり、既定のトレース レベルは 0 です。
ユーザー定義のカテゴリを使用するには、次のように記述します。
ATLTRACE2(MY_CATEGORY, 2, _T("a message in a custom category"));
トレース メッセージをフィルター処理するように指定するには、これらのマクロの定義を Stdafx.h の #include <atlbase.h> ステートメントの前に挿入します。
代わりに、[プロパティ ページ] ダイアログ ボックスを使用して、プリプロセッサ ディレクティブでフィルターを設定することもできます。 [プリプロセッサ] タブをクリックし、[プリプロセッサの定義] ボックスに識別子を入力します。
atlbase.h には ATLTRACE2 マクロの既定の定義が含まれており、これらの定義は、atlbase.h が処理される前にシンボルを定義しない場合に使用されます。
リリース ビルドでは、ATLTRACE2 は (void) 0 にコンパイルされます。
ATLTRACE2 を使用すると、ダンプ デバイスに送られる文字列の内容が書式指定後に 1023 文字以内に制限されます。
ATLTRACE と ATLTRACE2 の動作は同じです。ATLTRACE は、下位互換性のためにインクルードされます。
使用例
int i = 1;
ATLTRACE2(atlTraceGeneral, 4, "Integer = %d\n", i);
// Output: 'Integer = 1'
必要条件
**ヘッダー:**atltrace.h