创建新进程 c++ 时出错

Error creating new process c++

本文关键字:c++ 出错 进程 新进程 创建      更新时间:2023-10-16

在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<<"nnnERROR 3x02";
    }
}

总结一下:

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