使用MINGW在窗口应用程序中压制系统("command")控制台窗口

Supressing system("command") console window in a window application with MINGW

本文关键字:窗口 控制台 command 系统 压制 MINGW 应用程序 使用      更新时间:2023-10-16

我有一个WINMAIN应用程序说你好世界。

我用了

-mwindows 

链接器中的切换选项,以确保它执行 GUI 应用程序。但是当我执行一些系统命令时,例如

system("dir");

从 C 代码中,它会弹出一个控制台。

是否有按下控制台窗口的选项?

请指导。以下是使用Mingw GCC的hello world代码

#include <windows.h>
int WINAPI
WinMain (HINSTANCE hInstance, HINSTANCE hPrevInst, LPTSTR lpCmdLine, int nShowCmd)
{
  MessageBoxW (NULL, L"Hello World!", L"hello", MB_OK | MB_ICONINFORMATION);
  system("dir");
  system("dir");
  system("dir");
  system("dir");
  Sleep(1000);
  return 0;
}

你正在调用dir,但dir不像Unix中的ls那样的程序。这是一个命令。

因此,要执行dir,必须生成一个CMD.exe,因此控制台窗口。

按照@carl的建议使用FindFirstFile列出目录中的文件。