我使用CreateProcess()
从控制台程序运行另一个控制台程序,但它运行在与第一个相同的窗口。C++的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
的结果是一样的。
这是怎么成功的?你没有设置'sInfo.cb'。 – chris 2013-04-04 21:36:33
@chris我设置了'sinfo.cb = sizeof(STARTUPINFO);'然后我做了一个评论,看它是否会起作用。 – Bonnev 2013-04-04 21:47:55
嗯,我不记得有''CreateProcess'永远工作,当我忘了这么做。 – chris 2013-04-04 21:50:10