热情软件屋

 

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中可以找到。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio