CreateProcess函数调用失败
编号:QA002653
建立日期: 2000年2月28日 最后修改日期:2000年10月11日
所属类别:
cyjerttes:
win98
vc6
在VC++6.0中,我想用CreateProcess函数调用另一个Windows程序,但执行时CreatProcess函数根本没被调用,调试发现它直接返回-1然后就跳到下一句。百思不解,请各位不吝赐教。语句如下:
CreateProcess(
"",
"C:\\SAS\\SAS.EXE -CONFIG C:\\SAS\\CONFIG.SAS",
NULL,NULL,FALSE,
0,
NULL,
"C:\\SAS",
NULL,
&lpPI);
回答:
两个错误:
1、第一个参数应为NULL。
2、没有设置STARTUPINFO参数。
正确的用法:
STARTUPINFO si={0};
si.cb = sizeof(si);
CreateProcess(NULL,
"C:\\SAS\\SAS.EXE -CONFIG C:\\SAS\\CONFIG.SAS",
NULL,NULL,FALSE,
0,
NULL,
"C:\\SAS",
&si,
&lpPI);
Didy的意见:
为何和的调不同呢?第一个参数为何是NULL不是的ExePath???谢谢。
答:第一个参数按照API手册应该是要调用的程序(含路径),这没有问题。也可以是NULL,而把整个命令行写在第二个参数中,就象我的解答中说的这样。但是不能象问题中那样将第一个参数设置为""。详细的说明在MSDN Library中可以找到。
此问题由李海回答。
| |
|
|
| |
|
|