system和CreateProcess()

时间:2010-07-19 10:39:47

标签: c windows

我有一个命令,我需要使用C程序执行相同的操作。 我已将整个命令(带参数)存储在变量cmdline中。 当我使用系统(cmdline)时,它工作正常。 但是使用以下内容: ret = CreateProcess(NULL,                         CMDLINE,                         (LPSECURITY_ATTRIBUTES)NULL,                         (LPSECURITY_ATTRIBUTES)NULL,                         真正,                         NORMAL_PRIORITY_CLASS,                         空值,                         空值,                         &安培;启动时,                         &安培; PINFO);

我在GetLastError()中得到返回码为2。

有人能说出原因吗? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

程序名称可能包含空格吗?

从MSDN:如果lpApplicationName为NULL,则命令行的第一个以空格分隔的标记指定模块名称。如果您使用的是包含空格的长文件名,请使用带引号的字符串来指示文件名结束的位置以及参数的开始。