我应该怎么做才能使用新的命令提示符窗口来获得新的进程?

我有两个控制台应用程序,第一个运行第二个:

1_first控制台应用程序:

#include <Tchar.h> #include <windows.h> #include <iostream> using namespace std; void main(){ PROCESS_INFORMATION obj1; memset(&obj1,0,sizeof(PROCESS_INFORMATION)); STARTUPINFOW obj2; memset(&obj2,0,sizeof(STARTUPINFOW)); obj2.cb=sizeof(STARTUPINFOW); CreateProcessW(_TEXT("c:\\runme.exe"),_TEXT("hello what's up?"),NULL,NULL,FALSE,NULL,NULL,NULL,&obj2,&obj1); } 

2_第二个名为runme.exe的控制台应用程序:

 #include <stdio.h> #include <iostream> using namespace std; int main(int argc,char * * argv){ if (argc>0) for (int i=0;i<argc;i++) cout <<"**->**"<<argv[i]<<"\n"; } 

现在我的问题是,这两个应用程序将使用相同的命令提示符窗口,我该怎么做,让他们使用单独的?

当您调用CreateProcess时,在进程创建标志(第六个参数)中传递CREATE_NEW_CONSOLE

 CreateProcessW(L"c:\\runme.exe",L"hello what's up?",NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,&obj2,&obj1); 

当你调用CreateProcessW你不想在字符串上使用_TEXTCreateProcessW总是需要宽字符串,所以你应该总是在它们上使用一个L前缀。 _TEXT (或_T用于CreateProcess (无后缀),所以根据是否定义UNICODE / _UNICODE,它可以从窄字符串变为宽字符串。