ATLTRA CE2
警告向一組輸出裝置報告,例如偵錯工具視窗中,依據旗標和層級。
ATLTRACE2( exp );
ATLTRACE2(
DWORD category,
UINT level,
LPCSTR lpszFormat,
...
);
參數
exp
[in] 傳送字串至 Visual C++ 輸出視窗或截獲這些訊息的所有應用程式。category
[in]報告的事件或方法的型別。為分類清單。請參閱 <備註>。level
[in] 報告的追蹤層級。請參閱以取得詳細資訊。lpszFormat
[in] 使用的 printf樣式的格式字串建立字串傳送到傾印裝置。
備註
ATLTRACE2 的簡短形式寫入資料到偵錯工具的輸出視窗。ATLTRACE2 的第二個表單也將輸出寫入至偵錯工具的輸出視窗,不過,受 ATL/MFC 追蹤工具設定限制 (請參閱 ATLTraceTool 範例)。例如,在中,如果您將 level 為 4 並為層級 0,您的 ATL/MFC 追蹤工具不會看到訊息。層次可為 0, 1, 2, 3 或 4。預設值為 0,,報告只嚴重的問題。
category 參數清單設定的追蹤標記。這些旗標對應到您要報告方法的型別。下表列出您可以為 category 參數的有效追蹤標記。
ATL 追蹤標記
ATL 類別 |
描述 |
---|---|
atlTraceGeneral |
如需所有 ATL 應用程式的報表。預設值。 |
atlTraceCOM |
如需 COM 方法的報表。 |
atlTraceQI |
如需 QueryInterface 呼叫的報表。 |
atlTraceRegistrar |
如需物件的註冊的報表。 |
atlTraceRefcount |
如需變更之參考次數的報表。 |
atlTraceWindowing |
如需 Windows 方法的報告;例如,報表無效的訊息對應識別碼 . |
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 追蹤工具的分類名稱。第二個參數是預設的追蹤層級。這個參數是選擇性的,因此,預設的追蹤層級為 0。
使用使用者定義的分類:
ATLTRACE2(MY_CATEGORY, 2, _T("a message in a custom category"));
如需這些巨集指定您要篩選追蹤訊息,外掛程式會定義在 stdafx.h 在 #include <atlbase.h> 陳述式之前。
或者,您可以在前置處理器指示詞的篩選條件會在 [屬性頁] 對話方塊。按一下 Preprocessor 選項然後插入全域入 Preprocessor Definitions 編輯方塊。
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'
需求
Header: atltrace.h