是否有预处理器宏可以让我知道应用程序是控制台类型还是其他类型?

Is there a preprocessor macro which lets me know whether an application is of console type or other?

我要写我一个小print( )功能
但是,在上述功能中,我必须确定我是否正在处理独立于操作系统的控制台应用程序。
(主要是为了决定是使用 std::cout 还是使用 OS 相关的 MessageBox 实现。)

如果没有自动生成的常量,是否会有另一种适合多平台兼容的方式?

我会将其包含在一个库中,这意味着我不知道将使用哪个编译器或哪个 IDE。

在 windows 上,您可以将 GetConsoleWindow() 与一系列其他 API 调用组合在一起,以了解应用程序是控制台类型还是 GUI。像这样 post:How to check if the program is run from a console?

另见 Test if stdin has input for C++ (windows and/or linux) ,

没有独立于平台的方法来确定您的应用程序是使用 GUI 还是控制台。

这在 UNIX 平台上会非常困难,那里有许多不同的 GUI 库,更不用说 Wayland 与 X11 了。