回 帖 发 新 帖 刷新版面

主题:求助   在线等```

创建一个进程,打开Windows自带的命令行程序cmd.exe

程序如下:
#include<windows.h>
//#include<iostream>
int main(int argc,char *argv[])
{
    char szCommandLine[]="cmd";
    STARTUPINFO si={sizeof(si)};
    PROCESS_INFORMATION pi;
    si.dwFlags=STARTF_USESHOWWINDOW;        //指定wShowWindow成员有效
    si.wShowWindow=TRUE;                    //此成员设为TRUE的话则显示新建进程的主窗口
                                            //为FALSE的话则不显示
    BOOL bRet=::CreateProcess(
        NULL,
        szCommandLine,
        NULL,
        NULL,
        FALSE,
        CREATE_NEW_CONSOLE,                    //为进程创建一个新的控制台窗口
        NULL,
        NULL,
        &si,
        &pi);
    if(bRet)
    {        //既是不适用这两个句柄,最好是立刻将它们关掉
        ::CloseHandle(pi.hThread);
        ::CloseHandle(pi.hProcess);
    }
    return 0;
}

运行了两次,死了两次机,cmd会无限的弹出,哪里的毛病呢?
各位大侠。。。

回复列表 (共1个回复)

沙发

最近在学Windows编程的东西,书中举了一个创建进程的例子,就是上面这个,为什么总是调不通呢???

我来回复

您尚未登录,请登录后再回复。点此登录或注册