在Visual C ++ IDE中的输出窗口上打印输出

时间:2011-10-08 15:36:18

标签: c++ visual-studio-2010

如何在Visual C ++中的输出窗口上打印?我正在处理的项目不是控制台窗口项目类型。那是我构建并运行它时,它不会打开控制台窗口。相反,它会打开一个win32应用程序,它不是由我构建的。我只是在添加内容。

我对C ++很陌生,因为我无法在任何控制台上打印变量,这使我很难调试。

由于Visual Studio 2010项目在构建和运行时没有启动控制台,我是否仍然可以在IDE的“输出”窗口中打印变量等输出?

感谢您的帮助。

5 个答案:

答案 0 :(得分:6)

您可以使用OutputDebugString("...");打印到Visual Studio的“输出”窗口。你必须#include <windows.h>

答案 1 :(得分:3)

我写了一个便携式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');
}

请随时提供任何改进/建议/贡献; - )

答案 2 :(得分:1)

我不想在其他答案中指示打印到VS中的“输出”窗口,而是在我的GUI应用程序中创建控制台窗口,然后使用常规printf或cout向其写入调试信息。这样做的好处是即使在没有调试器的情况下运行也可以这样做。

有关设置控制台的简单功能,请参阅this site

答案 3 :(得分:0)

我过去曾经使用过这个版本,但没有使用win32应用程序。你可以尝试一下:)

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

答案 4 :(得分:0)

您可以使用Windows函数OutputDebugString(请参阅here)将输出发送到调试器。这些输出显示在VS输出窗口中。您还可以使用外部应用程序观看这些输出,例如DebugView

如果您不希望其他人看到这些调试消息,那么请记住从生产代码中删除这些语句(否则可能会使用DebugView等工具...)