C ++禁止显示命令提示符

时间:2012-05-22 21:02:11

标签: c++ shell command-prompt

我有什么办法可以确保在运行我的C ++程序时shell /命令提示符不显示,它是否是一个后台程序?虽然它显示因为它很快关闭而不是一个大问题,但我希望它根本不显示。程序将在Windows xp / vista / 7 OS上运行

2 个答案:

答案 0 :(得分:4)

配置编译器或链接器以将程序标记为GUI应用程序。

Windows识别两种主要类型的程序:GUI和控制台。如果EXE标头被标记为控制台程序,则操作系统会在执行之前创建一个控制台窗口。否则,它没有。这不是你可以在运行时控制的东西;你需要在链接时设置它。 (您可以调用ShowWindow(GetConsoelWindow(), SW_HIDE)尝试在运行时控制它,但这不会阻止窗口闪烁然后再关闭。另外,如果您的程序与其他程序(如cmd)共享控制台。 exe,然后你就会隐藏用户的命令提示符窗口!)即使你的程序没有任何实际的GUI,你仍然需要避免为你创建一个控制台窗口。

如果要在Visual Studio中启动新项目,请选择“Win32控制台应用程序”选项。如果您已有项目,则在项目的配置属性中,找到“链接器/系统”部分的“子系统”设置,并将其设置为“控制台”。这使得链接器使用/subsystem:console选项。如果您使用的是Mingw,请使用-Wl,--subsystem,windows选项。

答案 1 :(得分:3)

听起来我想要创建Windows服务,而不是命令行实用程序。这就是服务存在的原因。长时间运行的后台任务,无需用户交互。 A simple example here