我正在开发一个非托管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上按预期工作。
答案 0 :(得分:2)
输出窗口显示Debug流中的内容 - 控制台输出转到控制台窗口。
答案 1 :(得分:2)
对于Visual Studio,使用OutputDebugString
或TRACE
输出到调试监视器(在Visual Studio中运行时为Output
窗口)。
使用上述函数输出字符串以进行调试的IMO优于cout
,而且可怕的&#34; MessageBox&#34;方法,因为这两种方法都可能(并且很多时候)会干扰您正在运行的程序的运行。