在Visual C++IDE的输出窗口上打印输出
Printing output on the Output Window in Visual C++ IDE
如何在Visual C++中打印输出窗口?我正在处理的项目不是控制台窗口项目类型。当我构建并运行它时,它不会打开控制台窗口。相反,它打开了一个win32应用程序,它不是我自己构建的。我只是在添加一些东西。
我对C++还很陌生,因为我不能在任何控制台上打印变量,这让我很难调试。
由于Visual Studio 2010项目在我构建和运行它时不会启动控制台,所以我仍然可以在IDE的"输出"窗口上打印变量等输出吗?
谢谢你的帮助。
您可以使用OutputDebugString("...");
打印到Visual Studio的"输出"窗口。不过你必须#include <windows.h>
。
我已经编写了一个可移植的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');
}
请随时提供任何改进/建议/贡献;-(
我更喜欢在GUI应用程序中创建一个控制台窗口,然后使用常规的printf或cout向其写入调试信息,而不是像其他答案所示的那样打印到VS中的Output窗口。这样做的好处是,即使在没有调试器的情况下运行,也可以做到这一点。
有关设置控制台的简单功能,请参阅此网站。
我过去曾使用过它,尽管没有在win32应用程序中使用过。你可以试试看:(
http://www.cplusplus.com/forum/lounge/17371/
您可以使用Windows函数OutputDebugString
(请参阅此处(向调试器发送输出。这些输出显示在VS输出窗口中。您还可以使用外部应用程序(例如DebugView(来观察这些输出。
如果你不想让其他人看到这些调试消息,请记住从你的生产代码中删除这些语句(否则使用DebugView…等工具可能会看到这些消息(
- 为什么输出窗口上没有显示输出?
- 输出窗口中消息的可视化工作室源
- 输出 c++ 窗口 wstring 日志在终端中正确
- C++/Visual Studio-如何输出到测试输出窗口
- 如何将日志记录写入Visual Studio输出窗口?
- 调整项目在Visual Studio的输出窗口中构建报告
- 使用分叉时的输出窗口
- 制作垫子类型对象的数组.输出窗口显示同一帧
- 以编程方式清除Visual Studio输出窗口
- 打印到Visual Studio中的输出窗口
- 全屏获取c ++程序的输出.它是控制台输出窗口的目标代码
- Xcode 6 在我按下输出窗口后意外退出
- 将命令提示符输出重定向到 Visual Studio 2012 中的输出窗口
- VS2013-输出窗口不显示std::cout
- 输出窗口显示三个图像,而不是一个
- 在Visual C++IDE的输出窗口上打印输出
- Visual studio 2008输出窗口停止工作
- 是否有一种简单的方法可以用可互操作的代码在CLI中清理屏幕/保持输出窗口,避免conio.h和ncurses.h
- 额外的单词出现在visualc++输出窗口
- 在Visual Studio中使用本地Windows调试器运行第一个程序。输出窗口显示大量"Cannot find or open the PDB file"