difference between Console (/SUBSYSTEM:CONSOLE) an

2019-01-24 16:54发布

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 world of C++) thanks in advace

edit: if possible can you give me please two small programs to show an effect

4条回答
劫难
2楼-- · 2019-01-24 17:06

/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.

查看更多
Emotional °昔
3楼-- · 2019-01-24 17:08

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.

查看更多
Lonely孤独者°
4楼-- · 2019-01-24 17:12

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

查看更多
女痞
5楼-- · 2019-01-24 17:25

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.

查看更多
登录 后发表回答