我正在用C ++编写游戏。我想使用std :: cout从我的代码中打印调试消息,但由于这是一个GUI应用程序,因此默认情况下无法打印到控制台。我试过简单地从CMD运行它:
start Debug/hydro.exe
但无济于事。
在使用带有Win32项目的Visual Studio 2012的Windows 8 x86_64上,以下代码实现了我正在寻找的内容:
#include <Windows.h>
...
AllocConsole();
freopen("CONIN$", "r",stdin);
freopen("CONOUT$", "w",stdout);
freopen("CONOUT$", "w",stderr);
但是,我认为这不是跨平台的(如果我错了,请纠正我!)并希望我的应用程序可以在Linux和Mac OS X上运行。
是否有跨平台解决方案?当然,越简越好!
答案 0 :(得分:1)
我不知道有任何产品在Linux世界中这样做 - 你应该从shell启动代码,输出显示在shell窗口中。
这样包装应该会有所帮助:
#ifdef _WIN32
// Windows-only code here
#endif
当在Windows之外时,代码将不会被编译,当在Windows内部时,代码将被编译!
答案 1 :(得分:0)