当我在Windows上的GUI应用程序中使用system()函数(使用C语言)时,会出现一个控制台窗口。我怎样才能禁用它?
答案 0 :(得分:2)
CreateProcess()
如果你需要很多控制权。 ShellExecute()
如果您需要快速修复。
答案 1 :(得分:1)
其他人提到过使用CreateProcess(可能是为了重定向输出)。
发生这种情况的一般原因是您通过“system”运行的程序是一个命令行程序。如果您自己编译,则可以通过将其构建为GUI程序来摆脱控制台窗口。您应该可以通过包含Windows.h并使用WinMain()
作为入口点而不是main()
来实现此目的
答案 2 :(得分:0)
您可以尝试CreateProcess。看看这里:
答案 3 :(得分:0)
system()
是与Unix兼容的保留。我相信它是通过执行外部shell来实现的,它本身会打开一个控制台窗口。如果要直接执行GUI程序,可能需要直接使用win32 CreateProcess()API(和变体)。