我有一个命令,我需要使用C程序执行相同的命令。我已经将带有参数的整个命令存储在变量cmdline中。当我使用system(cmdline)时,它工作得很好。而是使用如下表达式: ret = CreateProcess(NULL,cmdline,(LPSECURITY_ATTRIBUTES)NULL,(LPSECURITY_ATTRIBUTES)NULL,TRUE,NORMAL_PRIORITY_CLASS,NULL,NULL,&startup,&pinfo);
我在GetLastError()中得到的返回码是2。
有人能说出原因吗?提前谢谢。
发布于 2010-07-19 18:54:04
也许程序名中包含空格?
From MSDN:如果lpApplicationName为NULL,则命令行的第一个以空格分隔的标记指定模块名称。如果使用包含空格的长文件名,请使用带引号的字符串来指示文件名的结束位置和参数的开始位置。
https://stackoverflow.com/questions/3280300
复制相似问题