I want to execute a TEST.exe in a C program. While I use
system( "TEST.exe <input-file> output-file" );
I can get what I expected.
But CreateProcessW() didn't work properly when I use the following code (see How do I run an external program?):
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();
}
where
FullPathToExe="TEST.exe", pwszParam="TEST.exe <input-file> output-file".
And WaitForSingleObject() returns 258, GetLastError() returns 1813 ("The specified resource type cannot be found in the image file.").
Also, The above CreateProcessW() code works fine when I run my own HelloProcess.exe (print hello, and sleep some seconds determined by the following number, then exit.) with
FullPathToExe="HelloProcess.exe", pwszParam="HelloProcess.exe 10".
Any ideas? Thanks for any hints!
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…