我研究了ATL的源代码(作为VS的一部分安装)。特别是atltrace.h。我发现了这个:
- CTrace类控制跟踪哪些类别和跟踪
等级
- 静态无符号成员m_nLevel是跟踪级别。
- 较低的m_nLevel值会导致更多跟踪。
- 零会导致所有迹线输出
- 值CTrace :: DisableTracing显式禁用全部
跟踪
- 静态无符号成员m_nCategory是位掩码
- 模板类CTraceCategoryEx预先定义了23个不同的类别
- TraceUser和TraceUtil类别均为0x80000。我认为这是一个错误,TraceUser应该是0x800000
- CTrace :: GetLevel()获取当前跟踪级别。默认值为零
- CTrace :: SetLevel()设置跟踪级别
- CTrace :: GetCategories()返回类别位掩码
- CTrace :: SetCategories()设置类别位掩码
- 对于给定的跟踪级别和类别CTrace :: IsTracingEnabled()返回enablement
- CTrace :: RegisterCategory()注册具有给定名称和索引的类别
- 用户定义的类别有9个插槽。
- 如果在atltrace.h之前未定义_DEBUG,则未定义CTrace。
- 在670行代码中不到二十条评论。
- 在理解代码操作时,不超过5条注释有用
- CTrace中有一个奇怪的枚举定义了几个不相关的常量。
- 常量EnableAllCategories(unsigned int as bit mask)和DisableTracing(unsigned int)碰巧具有相同的值,而另一个则分配给另一个。
醇>
回答我的问题:除了调试版本之外,没有什么需要查看与注册器相关的所有跟踪,以及查看消息的所有跟踪,例如DebugView。