Простой способ отправки отладочной информации в окно "Вывод" Visual Studio

Я начал пустой проект в Visual Studio 2010, чтобы написать приложение C. Как отправить отладочную информацию в окно вывода (меню Debug → Windows → Output)? Есть ли относительно простой способ реализовать TRACE или OutputDebugString или что-то подобное?

3 ответа

OutputDebugString - это способ сделать это. Вопрос о переполнении стека Как использовать макрос TRACE в проектах, отличных от MFC? содержит информацию о том, как сделать что-то похожее на MFC TRACE с помощью OutputDebugString.


Вы можете использовать OutputDebugString из программы VS C.

#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
 OutputDebugString(_T("Hello World\n"));
 return 0;
}
</windows.h>

Выход будет отображаться только при запуске с отладкой (Debug > Start Debugging)

В окне "Вывод" выберите "Debug" для "Show output from:"


Если вы используете С++, вас может заинтересовать мой переносимый макрос TRACE.

#ifdef ENABLE_TRACE
# ifdef _MSC_VER
# include <windows.h>
# include <sstream>
# define TRACE(x) \
 do { std::ostringstream s; s << x; \
 OutputDebugString(s.str().c_str()); \
 } while(0)
# else
# include <iostream>
# define TRACE(x) std::cerr << x << std::flush
# endif
#else
# define TRACE(x)
#endif
</iostream></sstream></windows.h>

Пример:

#define ENABLE_TRACE //can depend on _DEBUG or NDEBUG macros
#include "my_above_trace_header.h"
int main (void)
{
 int i = 123;
 ****** d = 456.789;
 TRACE ("main() i="<< i <<" d="<< d <<'\n');
}

Любые улучшения/предложения/вклады приветствуются; -)

licensed under cc by-sa 3.0 with attribution.