我可以做些什么来确保在我运行 C++ 程序时不显示 shell/命令提示符,它应该是一个后台程序?虽然它显示出来并不是什么大问题,因为它会很快关闭,但我宁愿它根本不显示。程序将在 windows xp/vista/7 操作系统上运行
2 回答
配置您的编译器或链接器以将您的程序标记为 GUI 应用程序。
Windows 可识别两种主要类型的程序:GUI 和控制台。如果 EXE 标头被标记为控制台程序,则操作系统会在执行之前创建一个控制台窗口。否则,它不会。这不是您可以在运行时控制的。您需要在链接时设置它。(您可以调用ShowWindow(GetConsoelWindow(), SW_HIDE)
以尝试在运行时对其进行控制,但这并不能阻止窗口闪烁然后再次关闭。另外,如果您的程序与另一个程序(如 cmd.exe)共享控制台,那么您将隐藏用户的命令提示符窗口!)即使您的程序没有任何实际的 GUI,这仍然是您需要避免为您创建控制台窗口的模式。
如果您在 Visual Studio 中启动一个新项目,请选择“Win32 控制台应用程序”选项。如果您已经有一个项目,那么在您的项目的配置属性中,找到“链接器/系统”部分的“子系统”设置并将其设置为“控制台”。这使得链接器使用该/subsystem:console
选项。如果您使用的是 Mingw,请使用该-Wl,--subsystem,windows
选项。
听起来你想创建一个 Windows 服务,而不是一个命令行实用程序。这就是服务存在的原因。无需用户交互的长时间运行的后台任务。 一个简单的例子在这里。