使用MINGW在窗口应用程序中抑制系统(“命令”)控制台窗口

时间:2013-11-07 19:51:39

标签: c++ c windows mingw

我有一个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;
}

1 个答案:

答案 0 :(得分:1)

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

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

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