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

Bon*_*nev 1 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";
Run Code Online (Sandbox Code Playgroud)

这是我的代码。我究竟做错了什么?当我添加一个时,它变得非常有趣

for(int i=0; true; i++)
{
    cout << i;
    Sleep(1000);
}
Run Code Online (Sandbox Code Playgroud)

到第一个。然后它开始输出下一个数字。

这就像两个程序合并了..我不想要那样,我想打开一个窗口。

PS 我正在传递参数,是的,但如果我剪切test结果是相同的。

Mik*_*han 5

要为子进程提供新的控制台,您需要在调用的参数CREATE_NEW_CONSOLE中设置标志。此处的文档:http://msdn.microsoft.com/en-gb/library/windows/desktop/ms682425 (v=vs.85).aspxdwCreationFlagsCreateProcess