2013-04-04 126 views
0

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

+0

这是怎么成功的?你没有设置'sInfo.cb'。 – chris 2013-04-04 21:36:33

+0

@chris我设置了'sinfo.cb = sizeof(STARTUPINFO);'然后我做了一个评论,看它是否会起作用。 – Bonnev 2013-04-04 21:47:55

+0

嗯,我不记得有''CreateProcess'永远工作,当我忘了这么做。 – chris 2013-04-04 21:50:10

回答

相关问题