перенаправление стандартного вывода
Суть следующая: оконное приложение (виндовс ХР) запускает консольное приложение (обработка файла). Консольное приложение результаты работы выводит в стандартный вывод, как сделать так, чтобы вывод программы отображался в EDIT control оконного приложения.
Пытался сделать следующее:
1. создавал файл -
hFile = CreateFile( "Log.txt",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
файл нужен для перенаправления на него стандартного вывода.
2. создавал процес -
CalcInfo.cb = sizeof(STARTUPINFO);
CalcInfo.cbReserved2 = 0;
CalcInfo.dwFillAttribute = 0;
CalcInfo.dwFlags = STARTF_USESTDHANDLES;
CalcInfo.dwX = 0;
CalcInfo.dwXCountChars = 0;
CalcInfo.dwXSize = 0;
CalcInfo.dwY = 0;
CalcInfo.dwYCountChars = 0;
CalcInfo.dwYSize = 0;
CalcInfo.hStdError = hFile;
CalcInfo.hStdInput = 0;
CalcInfo.hStdOutput = hFile;
CalcInfo.lpDesktop = NULL;
CalcInfo.lpReserved = NULL;
CalcInfo.lpReserved2 = NULL;
CalcInfo.lpTitle = "UdavCalc";
CalcInfo.wShowWindow = false;
if (!CreateProcess( "file.exe",
"file.exe -p1 -p2 -p3",
NULL,
NULL,
FALSE,
NORMAL_PRIORITY_CLASS,
NULL,
CurrentDir,
&CalcInfo,
&ProcInfo));
Консольная программа запускается, делает все правильно, но вот вывод в файл не записывается.
Подскажите пожалуйста в чем ошибка, или может пошел не по правильному пути.
на 1 этапе при создании файла нужно задать SECURITY_ATTRIBUTES
SecAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
SecAttr.bInheritHandle = TRUE;
hFile = CreateFile( "Log.txt,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
&SecAttr,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);