system () y CreateProcess () / CreateProcessW ()
Quiero ejecutar un TEST.exe en un programa en C. Mientras uso
system( "TEST.exe <input-file> output-file" );
Puedo obtener lo que esperaba.
Pero CreateProcessW () no funcionó correctamente cuando uso el siguiente código (ver ¿Cómo ejecuto un programa externo?):
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();
}
dónd
FullPathToExe="TEST.exe", pwszParam="TEST.exe <input-file> output-file".
Y WaitForSingleObject () devuelve 258, GetLastError () devuelve 1813 ("El tipo de recurso especificado no se puede encontrar en el archivo de imagen").
Además, el código CreateProcessW () anterior funciona bien cuando ejecuto mi propio HelloProcess.exe (imprimo hola y duermo unos segundos determinado por el siguiente número, luego salgo) con
FullPathToExe="HelloProcess.exe", pwszParam="HelloProcess.exe 10".
¿Algunas ideas? Gracias por cualquier pista!