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

标签 c++ cross-platform

我正在用 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/

相关文章:

c++ - 在 C++ 中返回对局部变量的引用

c++ - 在 C++ 程序中使用 scanf() 比使用 cin 更快?

c++ - 检查 if 语句的多个相等/不等式条件

c++ - Qt5 视频播放器 QtMultimedia QGraphicsVideoItem

无法将参数 1 从 'const char *' 转换为 'LPCWSTR'

user-interface - 如何在 wxWidgets 中设置最小窗口大小?

c++ - MFC ctrls 和重复消息

android - MediaPlayer 视频大小代号?

java.awt.Robot : how to send mouse/keyboard events to a specific window? 具有跨平台支持吗?

java - 从 Java 中查找 jvm