system()函数打开一个窗口

时间:2010-01-08 19:58:38

标签: c windows

  

可能重复:
  Supress console when calling “system” in c++

当我在Windows上的GUI应用程序中使用system()函数(使用C语言)时,会出现一个控制台窗口。我怎样才能禁用它?

4 个答案:

答案 0 :(得分:2)

CreateProcess()如果你需要很多控制权。 ShellExecute()如果您需要快速修复。

答案 1 :(得分:1)

其他人提到过使用CreateProcess(可能是为了重定向输出)。

发生这种情况的一般原因是您通过“system”运行的程序是一个命令行程序。如果您自己编译,则可以通过将其构建为GUI程序来摆脱控制台窗口。您应该可以通过包含Windows.h并使用WinMain()作为入口点而不是main()来实现此目的

答案 2 :(得分:0)

您可以尝试CreateProcess。看看这里:

Hide console in C system() function, Win

答案 3 :(得分:0)

system()是与Unix兼容的保留。我相信它是通过执行外部shell来实现的,它本身会打开一个控制台窗口。如果要直接执行GUI程序,可能需要直接使用win32 CreateProcess()API(和变体)。