我正在用 C++ 编写游戏。我想使用 std::cout 从我的代码中打印调试消息,但由于这是一个 GUI 应用程序,默认情况下没有可打印到的控制台。我试过像这样从 CMD 简单地运行它:
start Debug/hydro.exe
但是没有用。
在 Windows 8 x86_64 上使用带有 Win32 项目的 Visual Studio 2012,下面的代码实现了我正在寻找的东西:
#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 内部时,代码将被编译!
关于c++ - 用于调试消息的跨平台 GUI 应用程序控制台 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16528331/