difference between Console (/SUBSYSTEM:CONSOLE) and Windows (/SUBSYSTEM:WINDOWS)

前端 未结 4 1439
栀梦
栀梦 2020-12-06 03:04

can somebody please explain difference between those two declarations in the properties of the linker in visual studio 2008( please as simple as possible, I\'m new in the w

相关标签:
4条回答
  • 2020-12-06 03:30

    /SUBSYSTEM:CONSOLE) is for console based applications. You should define main function in code.

    /SUBSYSTEM:WINDOWS) is for GUI applications. You should define WinMain function.

    0 讨论(0)
  • 2020-12-06 03:37

    See here. VS2008 automates some things for you which has lead to the confusion.

    CONSOLE Win32 character-mode application. The operating system provides a console for console applications. If main or wmain is defined for native code, int main(array ^) is defined for managed code, or you build the application completely by using /clr:safe, CONSOLE is the default.

    WINDOWS Application does not require a console, probably because it creates its own windows for interaction with the user. If WinMain or wWinMain is defined for native code, or WinMain(HISTANCE *, HINSTANCE *, char *, int) or wWinMain(HINSTANCE *, HINSTANCE *, wchar_t *, int) is defined for managed code, WINDOWS is the default.

    0 讨论(0)
  • 2020-12-06 03:42

    /SUBSYSTEM:CONSOLE results in a process with a console and /SUBSYSTEM:WINDOWS does not.

    0 讨论(0)
  • 2020-12-06 03:46

    CONSOLE: Console window is shown. WINDOWS - program starts without Console window.

    Edited, looking at another answers. Notice that /SUBSYSTEM flag doesn't affect the program entry point. Program entry point is defined by /ENTRY linker option. Usually /SUBSYSTEM:CONSOLE has "main" entry point, and /SUBSYSTEM:WINDOWS has "WinMain" entry point. But it is possible, for example, to create GUI application with WinMain entry point and Console window.

    0 讨论(0)
提交回复
热议问题