如何在 VS2015 中配置 ATL 跟踪级别和类别

How to configure ATL trace level and categories in VS2015

我想跟踪我在 VS2015(社区版)中构建的项目中的 ATL 注册器进程。在 this post(第三段)中,它表示 ATL/MFC 跟踪工具已被删除。

遗憾的是,VS 2015 documentation 并未反映该更改。还是说trace工具(备注下第一段)

我的问题是您如何指定要查看与 ATL 注册商相关的所有消息?

我研究了 ATL 的源代码(作为 VS 的一部分安装)。特别是 atltrace.h。我发现了这个:

  1. class CTrace 控制跟踪哪些类别和跟踪 等级
  2. 静态未签名成员m_nLevel是跟踪级别。
  3. m_nLevel 的较低值会导致更多跟踪。
  4. 零导致输出所有痕迹
  5. 值CTrace::DisableTracing明确禁用所有 追踪
  6. 静态未签名成员,m_nCategory,是位掩码
  7. 模板class CTraceCategoryEx pre-defines 23个不同的类别
  8. TraceUser 和 TraceUtil 类别都是 0x80000。我认为这是一个错误,TraceUser 应该是 0x800000
  9. CTrace::GetLevel() 获取当前跟踪级别。默认为零
  10. CTrace::SetLevel() 设置跟踪级别
  11. CTrace::GetCategories() returns 类别位掩码
  12. CTrace::SetCategories() 设置类别位掩码
  13. 对于给定的跟踪级别和类别 CTrace::IsTracingEnabled() returns 启用
  14. CTrace::RegisterCategory() 用给定的名称和索引注册一个类别
  15. 用户定义的类别有 9 个插槽。
  16. 如果在atltrace.h之前未定义_DEBUG,则未定义CTrace。
  17. 670 行代码中只有不到二十条注释。
  18. 不超过5条评论对理解代码操作有用
  19. CTrace 中有一个奇怪的枚举,它定义了几个不相关的常量。
  20. 常量EnableAllCategories(unsigned int作为位掩码)和DisableTracing(unsigned int)恰好具有相同的值,一个赋值给另一个。

我的问题的答案:除了调试构建和查看消息的东西(如 DebugView)之外,不需要任何东西来查看与 Registrar 相关的所有跟踪。