我使用CreateProcess()
从控制台程序运行另一个控制台程序,但它运行在相同的窗口作为第一个。
STARTUPINFO sinfo;
PROCESS_INFORMATION pinfo;
LPSTR commandLine = " "Cows and Bulls.exe" test ";
ZeroMemory(&sinfo, sizeof(sinfo));
ZeroMemory(&pinfo, sizeof(pinfo));
if(!CreateProcess(0,commandLine, 0, 0, FALSE, 0, 0, 0, &sinfo, &pinfo))
cout << "failed";
这是我的代码。我做错了什么?当我添加
时,它变得非常有趣for(int i=0; true; i++)
{
cout << i;
Sleep(1000);
}
到第一个。然后它开始在下一个中输出数字。
就像两个程序合并在..我不想那样,我想打开一个新的窗口。
注:我传递参数,是的,但如果我切断test
,结果是一样的。
要给子进程一个新的控制台,您需要在调用CreateProcess
的dwCreationFlags
参数中设置CREATE_NEW_CONSOLE
标志。这里的文档:http://msdn.microsoft.com/en-gb/library/windows/desktop/ms682425(v=vs.85).aspx