有人可以在visual studio 2008中解释链接器属性中这两个声明之间的区别(请尽可能简单,我是C ++世界的新手),谢谢你的推荐
编辑:如果可能,你可以给我两个小程序来显示效果吗
答案 0 :(得分:9)
/SUBSYSTEM:CONSOLE)
用于基于控制台的应用程序。您应该在代码中定义main
函数。
/SUBSYSTEM:WINDOWS)
用于GUI应用程序。您应该定义WinMain
函数。
答案 1 :(得分:6)
CONSOLE:显示控制台窗口。 WINDOWS - 程序在没有控制台窗口的情况下启动。
编辑,看另一个答案。请注意,/ SUBSYSTEM标志不会影响程序入口点。程序入口点由/ ENTRY链接器选项定义。通常/ SUBSYSTEM:CONSOLE有“主”入口点,而/ SUBSYSTEM:WINDOWS有“WinMain”入口点。但是,例如,可以使用WinMain入口点和控制台窗口创建GUI应用程序。
答案 2 :(得分:3)
见here。 VS2008为您自动化了一些导致混乱的事情。
CONSOLE Win32字符模式应用程序。操作系统 为控制台应用程序提供控制台。如果是main或wmain 为本机代码定义,定义了int main(array ^) 托管代码,或者使用完全构建应用程序 / clr:safe, CONSOLE 是默认值。
WINDOWS 应用程序不需要控制台,可能是因为它创建了自己的窗口以便与用户进行交互。如果是WinMain 或wWinMain是为本机代码或WinMain(HISTANCE *, HINSTANCE *,char *,int)或wWinMain(HINSTANCE *,HINSTANCE *, wchar_t *,int)是为托管代码定义的, WINDOWS 是默认值。
答案 3 :(得分:2)
/ SUBSYSTEM:CONSOLE会产生一个带控制台和/ SUBSYSTEM的进程:WINDOWS没有。