C++ 控制台提示窗口出现在系统上(“启动目录”),但不出现在系统上(“启动ipconfig”)

C++ 控制台提示窗口出现在系统上(“启动目录”),但不出现在系统上(“启动ipconfig”),c++,windows,mfc,visual-c++-2010,C++,Windows,Mfc,Visual C++ 2010,我尝试创建一个简单的UI,在后台运行命令提示符(但windows控制台不能消失),同时单击每个按钮,分别单击 但在此之前,我尝试了类似于system(“start dir”)查看按钮是否工作 问题是:当我点击左键时,windows控制台出现,并且没有退出,我关闭了它。但这只适用于系统(“start dir”)。如果我将dir更改为ipconfig(或另一个调用函数),windows控制台将出现一秒钟并退出。我尝试了类似于系统(“暂停”)或getch()等等,但它不起作用 为什么此命令与dir一起

我尝试创建一个简单的UI,在后台运行命令提示符(但windows控制台不能消失),同时单击每个按钮,分别单击

但在此之前,我尝试了类似于
system(“start dir”)
查看按钮是否工作

问题是:当我点击左键时,windows控制台出现,并且没有退出,我关闭了它。但这只适用于
系统(“start dir”)。如果我将dir更改为ipconfig(或另一个调用函数),windows控制台将出现一秒钟并退出。我尝试了类似于
系统(“暂停”)
getch()等等,但它不起作用

为什么此命令与dir一起使用,而与另一个命令不一起使用


DIR和IPCONFIG之间有一个根本的区别,DIR命令内置于命令处理器(又称shell)中,IPCONFIG是存储在c:\windows\system32中的一个单独的程序

当您键入START/?在命令行中,您可以看到为什么它会以不同的方式对待它们:

If it is an internal cmd command or a batch file then
the command processor is run with the /K switch to cmd.exe.
This means that the window will remain after the command
has been run.

If it is not an internal cmd command or batch file then
it is a program and will run as either a windowed application
or a console application.
另一种方法是要求命令处理器执行命令,然后退出。您可以使用/c选项执行以下操作:

  system("cmd.exe /c dir");
或者更简单,因为system()会自动将作业传递给命令处理器:

  system("dir");

停止使用start:)

谢谢!现在我知道了DIR和IPCONFIG之间的区别。但是我该如何解决我的问题呢?呃,我给出了具体的代码片段,唯一可能出错的就是不尝试它们;和系统(“ipconfig”);但是控制台出现了一秒钟,然后消失了。@RaymondChen我不止一次读过他的答案。不管怎样,你的代码对我有用。谢谢。:)@从你的问题中不清楚你是想两人都暂停,还是两人都不想暂停。汉斯和我以为你都不想停下来。但汉斯的回答中也给出了让双方都停顿的方法。