Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Printing output on the Output Window in Visual C++ IDE

How do I print on the output window in Visual C++? The project that I am working on isn't of a console window project type. That's when I build and run it, it doesn't open a console window. Instead, it opens a win32 application, which isn't built by me. I am just adding things to it.

I am pretty new to C++ and because I couldn't print variables out on any console, it makes it very hard for me to debug.

Since the Visual Studio 2010 project doesn't launch console when I build and run it, can I still print outputs such as variables and others on the Output window of the IDE?

Thanks for any help.

like image 634
Carven Avatar asked Dec 16 '22 08:12

Carven


2 Answers

You can use OutputDebugString("..."); to print to the Output window of Visual Studio. You have to #include <windows.h> though.

like image 117
Darcara Avatar answered Dec 31 '22 01:12

Darcara


I have written a portable TRACE macro.
On MS-Windows, it is based on OutputDebugString as indicated by other answers.

Here I share my work:

#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

example:

#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');
}

Please feel free to give any improvements/suggestions/contributions ;-)

like image 21
oHo Avatar answered Dec 31 '22 02:12

oHo