Печать вывода в окне вывода в Visual C ++ IDE - PullRequest
4 голосов
/ 08 октября 2011

Как мне печатать в окне вывода в Visual C ++? Проект, над которым я работаю, не относится к типу консольных оконных проектов. Вот когда я собираю и запускаю его, окно консоли не открывается. Вместо этого он открывает приложение win32, которое я не создал. Я просто добавляю вещи к этому.

Я довольно новичок в C ++, и из-за того, что я не мог печатать переменные на любой консоли, мне очень трудно отлаживать.

Поскольку проект Visual Studio 2010 не запускает консоль при сборке и запуске, могу ли я по-прежнему печатать выходные данные, такие как переменные и другие, в окне вывода среды IDE?

Спасибо за любую помощь.

Ответы [ 5 ]

6 голосов
/ 08 октября 2011

Вы можете использовать OutputDebugString("..."); для печати в окне вывода Visual Studio.Вы должны #include <windows.h>, хотя.

3 голосов
/ 30 января 2013

Я написал переносимый макрос TRACE.
В MS-Windows он основан на OutputDebugString, как указано в других ответах.

Здесь я делюсь своей работой:

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

пример:

#define ENABLE_TRACE  //can depend on _DEBUG or NDEBUG macros
#include "my_above_trace_header.h"

int main (void)
{
   int     v1 = 123;
   double  v2 = 456.789;
   TRACE ("main() v1="<< v1 <<" v2="<< v2 <<'\n');
}

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

1 голос
/ 08 октября 2011

Вместо печати в окне «Вывод» в VS, как указано в других ответах, я предпочитаю создать консольное окно в моих приложениях с графическим интерфейсом, а затем использовать обычный printf или cout для записи в него информации отладки.Это дает то преимущество, что вы можете делать это даже тогда, когда вы работаете без отладчика.

См. этот сайт для простой функции, которая настраивает консоль.

0 голосов
/ 08 октября 2011

Вы можете использовать функцию Windows OutputDebugString (см. здесь ) для отправки вывода в отладчики. Эти выходы отображаются в окне вывода VS. Вы также можете смотреть эти выходы с помощью внешних приложений, например, DebugView .

Не забудьте удалить эти операторы из вашего производственного кода, если вы не хотите, чтобы другие люди видели эти сообщения отладки (что в противном случае было бы возможно при использовании таких инструментов, как DebugView ...)

0 голосов
/ 08 октября 2011

Я использовал это в прошлом, хотя не с приложением win32. Вы можете сделать это, хотя:)

http://www.cplusplus.com/forum/lounge/17371/

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