c++ CreateProcess()与第一个运行在同一个窗口中



我使用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,结果是一样的。

要给子进程一个新的控制台,您需要在调用CreateProcessdwCreationFlags参数中设置CREATE_NEW_CONSOLE标志。这里的文档:http://msdn.microsoft.com/en-gb/library/windows/desktop/ms682425(v=vs.85).aspx

最新更新