Где вывод _CrtDbgReportW в Windows Mobile? - PullRequest
1 голос
/ 27 мая 2009

Я использую макрос ASSERTE для проверки предварительных условий. Согласно его определению он использует ASSERT_BASE, который, в свою очередь, вызывает _CrtDbgReportW для распечатки сообщения. Куда идет вывод _CrtDbgReportW?

Я бы предположил, что если приложение запускается из отладчика, оно перейдет в окно отладчика. Куда будут отправляться сообщения, если они не находятся под отладчиком?

1 Ответ

1 голос
/ 27 мая 2009

Вывод для _CrtDbgReportW зависит от того, как вы его настроили. По умолчанию он отправляет его в OutputDebugString API.

Отладчики перехватывают выходные данные OutputDebugString и обычно отображают их в окне отладчика, как вы предлагаете.

Существуют также приложения, которые перехватывают вывод, например DebugView , который можно использовать для приложений на ПК.

Обновление: я пропустил бит Windows Mobile. Я до сих пор верю, что это вывод в OutputDebugString, но я не знаю ни одного стороннего приложения, которое работает. Единственный известный мне способ перехватить вывод OutputDebugString в Windows Mobile - это использовать Функции отладки DebugActiveProcess / WaitForDebugEvent , чтобы перехватывать события OUTPUT_DEBUG_STRING_EVENT и записывать их где-то.

...