我想在C程序中执行TEST.exe。当我使用
system( "TEST.exe <input-file> output-file" );
我可以得到我期望的结果。
但是当我使用以下代码时,CreateProcessW()没有正常工作(参见如何运行外部程序?):
if (CreateProcessW(const_cast<LPCWSTR>(FullPathToExe.c_str()),
pwszParam, 0, 0, false,
CREATE_DEFAULT_ERROR_MODE, 0, 0,
&siStartupInfo, &piProcessInfo) != false)
{
/* Watch the process. */
dwExitCode = WaitForSingleObject(piProcessInfo.hProcess, (SecondsToWait * 1000));
iReturnVal = GetLastError();
}
else
{
/* CreateProcess failed */
iReturnVal = GetLastError();
}
在哪里
FullPathToExe="TEST.exe", pwszParam="TEST.exe <input-file> output-file".
当使用WaitForSingleObject()函数时,返回258,而GetLastError()函数则返回错误代码1813(“指定的资源类型在映像文件中未被找到”)。
同时,上述CreateProcessW()的代码在我运行自己的HelloProcess.exe程序时正常工作(打印hello并根据以下数字确定的时间间隔睡眠一些秒数,然后退出)。
FullPathToExe="HelloProcess.exe", pwszParam="HelloProcess.exe 10".
有什么想法吗?感谢任何提示!