ATLTRACE2
警告到一个输出设备报告,如调试器窗口中,根据指定的标志和级别。
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 和 ATL/MFC 跟踪工具针对级别 0,则看不到消息。级别 可以是 0,1,2,3 或 4。默认值,0,仅报告严重的问题。
category 参数列表跟踪标志设置为。这些标志对应于要报告方法的类型。下表列出了可以为 category 参数使用的有效跟踪标志。
ATL 跟踪标志
ATL 类 |
描述 |
---|---|
atlTraceGeneral |
有关所有 ATL 应用程序的报表。默认值。 |
atlTraceCOM |
有关 COM 方法的报表。 |
atlTraceQI |
有关 QI 的报表调用。 |
atlTraceRegistrar |
有关对象注册的报表。 |
atlTraceRefcount |
有关更改的报告引用计数。 |
atlTraceWindowing |
有关 windows 方法的报表;例如,报表无效消息映射 ID. |
atlTraceControls |
有关控件的报表;例如,报告,在销毁控件或窗口。 |
atlTraceHosting |
承载邮件的报表;例如,报表激活时,容器中客户端。 |
atlTraceDBClient |
有关 OLE DB 使用者模板提供的报表;例如,在中,当对 GetData 的调用失败时,输出可能包含 HRESULT。 |
atlTraceDBProvider |
有关 OLE DB 提供程序模板提供的报表;例如,报表,如果列的创建失败。 |
atlTraceSnapin |
MMC 卡扣样式的应用程序的报表。 |
atlTraceNotImpl |
报表所指示的功能不实现。 |
atlTraceAllocation |
报告内存调试工具打印的消息。atldbgmem.h。 |
MFC TRACE 标志
MFC 类 |
描述 |
---|---|
traceAppMsg |
通常使用,MFC 消息。始终建议。 |
traceDumpContext |
从 CDumpContext的消息。 |
traceWinMsg |
从 MFC 的消息处理代码的消息。 |
traceMemory |
从 MFC 的内存管理代码的消息。 |
traceCmdRouting |
从 MFC 的 windows 命令传送代码的消息。 |
traceHtml |
从 MFC 的 DHTML 对话框的消息支持。 |
traceSocket |
从 MFC 套接字支持的消息。 |
traceOle |
从 MFC 的 OLE 的消息支持。 |
traceDatabase |
从 MFC 的消息数据库支持。 |
traceInternet |
从 MFC 的 Internet 的消息支持。 |
若要声明自定义跟踪类别,请声明 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> 语句之前。
或者,可以在预处理器指令的筛选器在 属性页 对话框。单击 预处理器 选项插入到全局 预处理器定义 中然后编辑框。
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