这是我的代码。我总是得到错误3,我能做什么?我尝试用CreateProcessA替换CreateProcces,替换前两个参数,尝试处理其他程序,但它仍然不起作用。谢谢。CreateProcess,winapi,错误代码3
#include "windows.h"
#include <iostream>
void main() {
STARTUPINFOA cif;
ZeroMemory(&cif,sizeof(cif));
PROCESS_INFORMATION pi;
CreateProcessA("","C:\\Windows\\notepad.exe",NULL,NULL, NULL,NULL,NULL,NULL,&cif,&pi);
DWORD error=GetLastError();
std::cout << "error " << error << "\n";
while(1) {} // подождать
}
是的,你说得对。我已经纠正它,但它仍然返回错误代码3. 首先,notepad.exe不执行,第二,getlasteeror返回代码错误3,我做错了什么?
我把:
char* path="C:\\Windows\\notepad.exe";
CreateProcessA(path,"sfvfd",NULL,NULL,NULL,NULL,NULL,NULL,&cif,&pi);
,而不是(和它的工作!):
CreateProcessA("","C:\\Windows\\notepad.exe",NULL,NULL,
NULL,NULL,NULL,NULL,&cif,&pi);
有什么区别?
你的测试有点奇怪。如果成功,'CreateProcess'返回一个非零值,所以你最好放松'== TRUE'。 – ChrisF 2013-05-12 11:38:00
你怎么知道它失败?你没有测试返回值。 – paulm 2013-05-12 11:47:34
@paulm首先,notepad.exe没有执行,第二,getlasteeror返回代码错误3,我做错了什么? – Robert 2013-05-12 11:53:49