用C ++隐藏黑色窗口

时间:2012-01-20 16:57:18

标签: c++ c console command-prompt

  

可能重复:
  Create an Application without a Window
  Win32 programming hiding console window

如何隐藏运行C ++程序时出现的控制台窗口?程序不向stdout输出任何内容,每次运行程序时都不需要出现黑色窗口。我不希望它被最小化我希望它是隐形的。有什么想法吗?

2 个答案:

答案 0 :(得分:16)

如果您想隐藏控制台,可以在Windows上调用FreeConsole

#include <Windows.h>

int main()
{
    FreeConsole();
    //other stuff
}

正如大卫所说,这可能会暂时闪现。如果您不想要,可以创建windows service或Windows GUI应用程序,而不是创建如下窗口

#include <windows.h>

int WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
    //do stuff here
    return 0;
}

答案 1 :(得分:5)

听起来问题是您正在创建一个控制台应用程序。它们默认配有控制台。它们要么继承调用它们的进程的控制台,如果它有一个,要么创建一个新的控制台。

您应该使应用程序成为GUI子系统而不是控制台子系统。这并不意味着您必须显示任何GUI。制作一个以GUI子系统为目标但不显示任何窗口的应用程序是完全合理和普遍的。