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

时间:2015-04-26 17:28:27

标签: c++ c-preprocessor compiler-constants

我打算给我写一点print( )函数 然而,在所述功能中,我必须确定我是否在独立于操作系统处理控制台应用程序。
(主要用于决定是否使用std::cout或与OS相关的MessageBox实施。)

如果没有自动生成的常量,那么还有其他合适的多平台兼容方式吗?

我将它包含在一个库中,这意味着我无法分辨将使用哪个编译器或哪个IDE。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

没有与平台无关的方法来确定您的应用程序是使用GUI还是控制台。

在UNIX平台上,这将非常困难,因为有许多不同的GUI库,更不用说Wayland vs X11了。