2010-06-29 3 views
2

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

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

(Visual Studio C++ 6.0)

Спасибо.

+4

http://stackoverflow.com/questions/3009042/how-to-view-printf-output-in-win32-app-on-visual-studio-2010 –

+0

Действительно ? Хорошо, спасибо.... –

ответ

2

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

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

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

2

я использовать ТРАССИРОВКИ семейство макросов TRACE0, TRACE1, ... и т.д. Они ведут себя как Printf. 0, 1, 2, ... и т. Д. Достаточно указать количество аргументов, которые может принять макрос (printf использует открытый аргумент va_list)

0

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

// 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.)

Смежные вопросы