创建新进程c ++时出错

时间:2016-03-17 14:02:33

标签: c++ api process

MSDN花了很多时间之后,我创建了这部分代码,打开了一个名为system.exe的文件。

编译代码时没有任何错误,但文件无法启动。我已经检查过文件是否存在,它是否存在但是没有启动!

为什么呢?感谢

void start(string path){
    STARTUPINFO Startupinf;
    PROCESS_INFORMATION Processinfo;
    cout<<path;
    if(!CreateProcess(path.c_str(),NULL,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,path.c_str(),&Startupinf,&Processinfo)){
        cout<<"\n\n\nERROR 3x02";
    }
}

1 个答案:

答案 0 :(得分:0)

总结:

  1. 请在致电GetLastError()后查看CreateProcess()返回的内容。

  2. 如果您正在启动进程path.c_str(),那么您当前的目录不是path.c_str()哪个是可执行文件 - 对吧?

  3. 初始化StartupInfoProcessInfo

    PROCESS_INFORMATION Processinfo; ZeroMemory(&Processinfo, sizeof(Processinfo));
    STARTUPINFO StartupInf; ZeroMemory(&StartupInf, sizeof(StartupInf));
    StartupInf.cb = sizeof(STARTUPINFO);