创建新进程时出错 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";
}
}
总结一下:
调用CreateProcess()
后总是检查GetLastError()
returns。
如果您正在启动一个进程 path.c_str()
,那么您的当前目录不是 path.c_str()
可执行文件 - 对吧?
初始化StartupInfo
和ProcessInfo
:
PROCESS_INFORMATION Processinfo; ZeroMemory(&Processinfo, sizeof(Processinfo));
STARTUPINFO StartupInf; ZeroMemory(&StartupInf, sizeof(StartupInf));
StartupInf.cb = sizeof(STARTUPINFO);
在 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";
}
}
总结一下:
调用
CreateProcess()
后总是检查GetLastError()
returns。如果您正在启动一个进程
path.c_str()
,那么您的当前目录不是path.c_str()
可执行文件 - 对吧?初始化
StartupInfo
和ProcessInfo
:PROCESS_INFORMATION Processinfo; ZeroMemory(&Processinfo, sizeof(Processinfo)); STARTUPINFO StartupInf; ZeroMemory(&StartupInf, sizeof(StartupInf)); StartupInf.cb = sizeof(STARTUPINFO);