VS2013 - 输出窗口不显示std :: cout

时间:2014-11-04 21:33:34

标签: c++ c++11 visual-studio-2013

我正在开发一个非托管C ++ 11应用程序并在VS2013中进行调试。我有一个助手类

#include <cstdio>
class DebugHelper : public dbg::IDebugHelper {
   public:
     virtual void outputLine(const std::string & message) const override 
     { std::cout << message << std::endl; }
   .....
 };

我希望通过DebugHelper的outputLine打印的字符串将显示在工作室的Output窗口中。然而,std :: cout和std :: err都没有发生这种情况。这应该是吗?在我缺少的项目属性中是否存在某种设置?顺便说一句,相同的代码在QtCreator下的Mac上按预期工作。

2 个答案:

答案 0 :(得分:2)

输出窗口显示Debug流中的内容 - 控制台输出转到控制台窗口。

答案 1 :(得分:2)

对于Visual Studio,使用OutputDebugStringTRACE输出到调试监视器(在Visual Studio中运行时为Output窗口)。

使用上述函数输出字符串以进行调试的IMO优于cout,而且可怕的&#34; MessageBox&#34;方法,因为这两种方法都可能(并且很多时候)会干扰您正在运行的程序的运行。