如何防止在Windows中执行自动打开控制台?

问题描述:

前提:我对Windows编程非常陌生。如何防止在Windows中执行自动打开控制台?

到目前为止,我编译的每个小程序,在执行时(...双击GUI)自动打开一个控制台,它会提示std输出。

这里是一个屏幕截图,显示的this example

enter image description here

正如你所看到的执行,通过该程序创建的窗口的后面有一个控制台。

为什么会发生这种情况以及如何预防它?

+0

您创建了一个控制台模式项目。谁的入口点是main(),而不是WinMain()。使用正确的项目模板入门,使用“Win32 Project”进入成功之路。你会得到一些自动生成的代码,这些代码已经做了你正在做的事情,如果你想自己写,就删除它。 –

Windows程序有两个子系统:Windows或控制台。当您启动一个控制台程序时,会自动创建一个控制台(如果它不存在)。由于控制台是默认设置,因此在构建程序时必须设置适当的链接器选项/SUBSYSTEM:WINDOWS

这两个子系统之间没有根本的区别。 Windows程序可以创建一个控制台,控制台程序可以创建窗口,所以你最终会同时拥有一个窗口和一个控制台。

有更多的子系统,但它们与您的问题无关。有关更多信息,请参见https://msdn.microsoft.com/en-us/library/fcc1zstk.aspx(还包含有关在Visual Studio中设置链接器选项的信息)