在编译中检测-mconsole和-mwindows

时间:2018-06-03 18:54:07

标签: gcc compile-time windows-console

这可能是一个简单或愚蠢的问题,但我找不到答案: 是否可以在编译时检查是否使用-mwindows或-mconsole选项调用Windows上的GCC?我想将输出定向到stdout或消息框,具体取决于此选项

#ifdef CONSOLE_BUILD
printf(“你好stdout”);
#elifdef GUI_BUILD
MessageBoxW(NULL,L“GUI上的Hello”,NULL,MB_OK);
#ENDIF

1 个答案:

答案 0 :(得分:0)

-mconsole-mwindows仅影响链接器,而不影响编译器。每当指定-DCONSOLE_BUILD时,您都可以使用GCC规范文件添加-mconsole,但这基本上是自定义GCC修改。

作为替代方案,似乎有各种方法可以确定控制台窗口是否与进程相关联,例如GetConsoleWindow function(但我不是Windows程序员)。