创建新进程时出错 C++

Error creating new process c++

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. 调用CreateProcess()后总是检查GetLastError()returns。

  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);