用于调试消息的跨平台GUI应用程序控制台

Cross-platform GUI application console for debug messages C++

本文关键字:GUI 应用程序 控制台 跨平台 调试 消息 用于      更新时间:2023-10-16

我正在用c++编程一个游戏。我想使用std::cout从我的代码中打印调试消息,但由于这是一个GUI应用程序,默认情况下没有可打印的控制台。我试过简单地从CMD中运行它,像这样:

start Debug/hydro.exe

但无济于事。

在Windows 8 x86_64上使用Visual Studio 2012与Win32项目,以下代码实现了我正在寻找的:

#include <Windows.h>
...
AllocConsole();
freopen("CONIN$", "r",stdin);
freopen("CONOUT$", "w",stdout);
freopen("CONOUT$", "w",stderr);

然而,我相信这不是跨平台的(如果我错了请纠正我!),并希望我的应用程序在Linux和Mac OS x上工作。

是否有跨平台的解决方案?当然,越简单越好!

我不知道在Linux世界中有任何产品可以做到这一点-您期望从shell启动代码,并且输出出现在shell窗口中。

像这样换行应该有帮助:

#ifdef _WIN32
// Windows-only code here
#endif

在Windows外部时,代码将不被编译,在Windows内部时,代码将被编译!

如果你的代码依赖于<Windows.h>,它绝对不是跨平台的。

查看用于跨平台日志记录的log4cxx。这是一个相当稳定、成熟的平台。

PS:祝你在跨平台GUI编程方面好运。GUI编程通常是平台特定的。像Qt这样的框架可能会有很大帮助,如果你正在做3D图形,一定要使用OpenGL而不是DirectX。