1

我正在使用 ASSERTE 宏来检查前置条件。根据它的定义,它使用 ASSERT_BASE,然后调用 _CrtDbgReportW 来打印消息。_CrtDbgReportW 输出到哪里?

我假设如果应用程序是从调试器启动的,它将进入调试器窗口。如果不在调试器下,消息会去哪里?

4

1 回答 1

1

_CrtDbgReportW的输出取决于您的设置方式。默认情况下,它会将其发送到OutputDebugString API。

调试器捕获 OutputDebugString 输出,并通常按照您的建议将它们显示在调试器窗口中。

还有一些应用程序可以捕获输出,例如可用于 PC 应用程序的DebugView 。

更新:我错过了 Windows Mobile 位。我仍然相信它是输出到 OutputDebugString 但我不知道有任何第三方应用程序可以工作。我知道在 Windows Mobile 下捕获 OutputDebugString 输出的唯一方法是使用调试函数 DebugActiveProcess / WaitForDebugEvent捕获 OUTPUT_DEBUG_STRING_EVENT 事件并将它们写出某处。

于 2009-05-27T03:42:03.737 回答