Где я могу увидеть вывод printf в приложении mfc? - PullRequest
2 голосов
/ 29 июня 2010

Где можно увидеть вывод printf в приложении mfc во время отладки?

Есть ли окно "консоли", которое я могу просмотреть в отладчике?

(Visual Studio C ++ 6.0)

Спасибо.

Ответы [ 3 ]

2 голосов
/ 30 июня 2010

Если вы используете API OutputDebugString, строки, которые вы выводите, появятся в окне вывода Visual C (в режиме отладки).В режиме выпуска вам понадобится отдельное приложение для их захвата, такое как DBWIN32.EXE

Преимущество использования отдельного приложения заключается в том, что вы можете получить отладочный вывод из нескольких приложений, сериализованных в одно окно, котороеможет быть очень удобно для отладки некоторых сценариев.

Недостатком, конечно, является то, что вы можете получить отладочный вывод из других приложений (не имеющих ничего общего с вашим собственным), появляясь, потому что они забыли отметить свою отладку ввыпустить сборку.TRACE сделает это автоматически, но, конечно, могут быть случаи, когда вы ХОТИТЕ получить результат в сборке релиза.Я предпочитаю быть ответственным, поэтому я помещаю wsprintf / sprintf в строку, использую OutputDebugString и сохраняю этот элемент управления для себя.

2 голосов
/ 30 июня 2010

Я использовал макросы семейства TRACE TRACE0, TRACE1, ... и т. Д. Они ведут себя как printf.Достаточные значения 0, 1, 2, ... и т. Д. Указывают количество аргументов, которые может принимать макрос (printf использует открытый аргумент va_list с открытым аргументом)

0 голосов
/ 04 февраля 2015

Вот как это делается:

// for OutputDebugString
#include "Windows.h"

// ...

// fill in the message
char message[2000];

// fill in the variables
int var1 = ...;
int var2 = ...;

// fill in the message string and output it
sprintf(message, "... format %d,%d", var1, var2);
OutputDebugString((LPCSTR)message);

Должен появиться в окне вывода. (Нужно привести в LPCSTR.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...