我有一个命令,我需要使用C程序执行相同的操作。 我已将整个命令(带参数)存储在变量cmdline中。 当我使用系统(cmdline)时,它工作正常。 但是使用以下内容: ret = CreateProcess(NULL, CMDLINE, (LPSECURITY_ATTRIBUTES)NULL, (LPSECURITY_ATTRIBUTES)NULL, 真正, NORMAL_PRIORITY_CLASS, 空值, 空值, &安培;启动时, &安培; PINFO);
我在GetLastError()中得到返回码为2。
有人能说出原因吗? 提前谢谢。
答案 0 :(得分:1)
程序名称可能包含空格吗?
从MSDN:如果lpApplicationName为NULL,则命令行的第一个以空格分隔的标记指定模块名称。如果您使用的是包含空格的长文件名,请使用带引号的字符串来指示文件名结束的位置以及参数的开始。