CreateProcess 的lpCurrentDirectory参数用来设置子进程工作路径,说是一个指向一个以NULL结尾的字符串,且要包含驱动器名的绝对路径,但是这个参数一般都为null,我尝试用这个参数设置子进程的工作路径,
createprocess函数总是返回2(找不到工作路径),这个情况该怎么解决,大家有用过这个参数,给个样本参照下吗,求大神指点
createprocess函数总是返回2(找不到工作路径),这个情况该怎么解决,大家有用过这个参数,给个样本参照下吗,求大神指点
ERROR_FILE_NOT_FOUND
2
The system cannot find the file specified.是说文件没找到啊,你确定CreateProcess 的 LPCTSTR lpApplicationName 没错吗
{
printf("CreateProcess fialed (%d).\n",GetLastError());
return 1;
}
LPTSTR szCmdline = _tcsdup(TEXT("C:\\Program Files\\MyApp -L -S"));
CreateProcess(NULL, szCmdline, /* ... */);
If a malicious user were to create an application called "Program.exe" on a system, any program that incorrectly calls CreateProcess using the Program Files directory will run this application instead of the intended application.
To avoid this problem, do not pass NULL for lpApplicationName. If you do pass NULL for lpApplicationName, use quotation s around the executable path in lpCommandLine, as shown in the example below.
LPTSTR szCmdline[] = _tcsdup(TEXT("\"C:\\Program Files\\MyApp\" -L -S"));
CreateProcess(NULL, szCmdline, /*...*/);楼主贴出szChildProcessCmd的内容吧,
能正常运行?createprocess函数总是返回2(找不到工作路径)?我不太理解,也很好奇,楼主可以贴出szChildProcessCmd的内容不,以及如何获得返回2的,GetLastError吗?
而且我问的是倒数第三个参数,不是第二参数.