在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";
}
}
答案 0 :(得分:0)
总结:
请在致电GetLastError()
后查看CreateProcess()
返回的内容。
如果您正在启动进程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);