这可能是一个简单或愚蠢的问题,但我找不到答案:
是否可以在编译时检查是否使用-mwindows或-mconsole选项调用Windows上的GCC?我想将输出定向到stdout或消息框,具体取决于此选项
#ifdef CONSOLE_BUILD
printf(“你好stdout”);
#elifdef GUI_BUILD
MessageBoxW(NULL,L“GUI上的Hello”,NULL,MB_OK);
#ENDIF
答案 0 :(得分:0)
-mconsole
和-mwindows
仅影响链接器,而不影响编译器。每当指定-DCONSOLE_BUILD
时,您都可以使用GCC规范文件添加-mconsole
,但这基本上是自定义GCC修改。
作为替代方案,似乎有各种方法可以确定控制台窗口是否与进程相关联,例如GetConsoleWindow
function(但我不是Windows程序员)。