次の方法で共有


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 文字以内に制限されます。

ATLTRACEATLTRACE2 の動作は同じです。ATLTRACE は、下位互換性のためにインクルードされます。

使用例

int i = 1;
ATLTRACE2(atlTraceGeneral, 4, "Integer = %d\n", i);
// Output: 'Integer = 1'

必要条件

ヘッダー : atltrace.h

参照

参照

ATLTRACE (ATL)

その他の技術情報

デバッグとエラー レポートに関するマクロ