控制台(/ SUBSYSTEM:CONSOLE)和Windows(/ SUBSYSTEM:WINDOWS)之间的区别

gee*_*eek 6 c++ visual-studio

有人可以在visual studio 2008中解释链接器属性中这两个声明之间的区别(请尽可能简单,我是C++世界的新手)

编辑:如果可能,你可以给我两个小程序来显示效果

ks1*_*322 9

/SUBSYSTEM:CONSOLE)是基于控制台的应用程序.您应该main在代码中定义函数.

/SUBSYSTEM:WINDOWS)适用于GUI应用程序.你应该定义WinMain功能.

  • SUBSYSTEM:WINDOWS不一定适用于GUI应用程序.仅适用于没有控制台的应用.想想服务器应用程序,无头服务. (8认同)
  • 如果从MSVC 2013命令行定位Windows XP,则可能需要/SUBSYSTEM:WINDOWS,5.1(或:CONSOLE,5.1) (2认同)

Ale*_*x F 7

控制台:显示控制台窗口.WINDOWS - 程序在没有控制台窗口的情况下启动.

编辑,看着另一个答案.请注意,/ SUBSYSTEM标志不会影响程序入口点.程序入口点由/ ENTRY链接器选项定义.通常/ SUBSYSTEM:CONSOLE有"主"入口点,而/ SUBSYSTEM:WINDOWS有"WinMain"入口点.但是,例如,可以使用WinMain入口点和控制台窗口创建GUI应用程序.