我正在使用控制台程序中的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);
}
到第一个。然后它开始输出数字 IN 下一个。
这就像两个程序合并 ..我不希望这样,我想打开一个新窗口。
P.S。我正在传递论据,是的,但是如果我切断test
结果是相同的。
答案 0 :(得分:4)
要为子进程提供新的控制台,您需要在CREATE_NEW_CONSOLE
的{{1}}参数中设置dwCreationFlags
标记。这里的文档:http://msdn.microsoft.com/en-gb/library/windows/desktop/ms682425(v=vs.85).aspx