Здравствуйте Roman_M, вы писали:
RM>Создается анонимный канал(pipe), затем инициализируется в STARTUPINFO hStdOutput хэндлом записи созданного канала и RM>dwFlags |= STARTF_USESTDHANDLES, а затем делается CreateProcess c bInheritHandles=TRUE, ну и ReadFile из хэндла чтения канала.
Работает, но очень медленно: программа уже завершила работу, а выведенные сообщения еще долго читаются, а после того, как все прочитается программа зависает на ReadFile
(ни один MessageBox не срабатывает)
Что здесь неправильно?
do
{
fSuccess = ReadFile( hReadPipe, &bReadBuffer, 1, &cbReadBuffer, NULL);
if( !fSuccess )
if( GetLastError() == ERROR_BROKEN_PIPE )
{
MessageBox("Child has died");
break; // child has died
}
else MessageBox("Pipe error");