ATLTRACE2
更新 : 2007 年 11 月
指定されたフラグとレベルに応じて、デバッガ ウィンドウなどの出力デバイスに警告を送ります。
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