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

C++ 使用MINGW在窗口应用程序中抑制系统(“命令”)控制台窗口,c++,c,windows,mingw,C++,C,Windows,Mingw,我有一个WINMAIN应用程序“向世界问好” 我曾经 -mwindows 切换链接器中的选项,以确保它不影响GUI应用程序。 但是当我执行一些系统命令时,比如 system("dir"); 从C代码中弹出一个控制台 是否有抑制控制台窗口的选项 请导游。下面是使用mingwgcc的helloworld代码 #include <windows.h> int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInst, LPTS

我有一个WINMAIN应用程序“向世界问好”

我曾经

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

system("dir");
从C代码中弹出一个控制台

是否有抑制控制台窗口的选项

请导游。下面是使用mingwgcc的helloworld代码

#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;
}
#包括
int WINAPI
WinMain(HINSTANCE HINSTANCE、HINSTANCE hPrevInst、LPTSTR lpCmdLine、int nShowCmd)
{
MessageBoxW(NULL,L“Hello World!”,L“Hello”,MB|u OK|MB|u图标信息);
系统(“dir”);
系统(“dir”);
系统(“dir”);
系统(“dir”);
睡眠(1000);
返回0;
}

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

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


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

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

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


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

使用CreateProcess并隐藏窗口。@RetiredInja::我非常喜欢windows GUI应用程序。您是否可以获得相同的参考。不要使用system。如果要列出目录中的文件,请签出此“使用CreateProcess”并隐藏窗口。@RetiredInja::我非常喜欢windows GUI应用程序。您是否可以获得相同的参考。不要使用系统。如果要列出目录中的文件,请查看此