А>Спасибо, посмотрел каналы, разобрался, но цели так и не добился. Если Вас не затруднит, разъясните, пожайлуста следующие моменты.
А>1. Допустим, я создал трубу. Хендлы назвал h_read и h_end. Какие мне надо ставть SECURITY_ATTRIBUTES, и что это такое?
А>2. Я написал:
А>А>SetStdHandle(STD_OUTPUT_HANDLE, h_write);
А>
А>Означает ли это, что теперь весь стандартный вывод будет идти по этой трубе?
А>3. Я написал
А>А>std::cout << "Hello!";
А>
А>Означает ли это, что я направил "Hello" в стандартный вывод?
А>4. Допустим, для варианта с CreateProcess все ясно. Но теперь я пишу
А>А>system("dir");
А>
А>Как заставить вывод этой комманды идти не в консоль (которая сразу создается и пропадает), а идти в мою трубу. Когда я делал консоль сам (AllocConsole()), все порожденные процессы писали в мою консоль, как заставить их не создавать свою консоль, а писать в мою трубу?
А>Буду очень благодарен за ответы.
1) SECURITY_ATTRIBUTES ставь NULL
2) Да
3) Да
4) Что Вам мешает использовать CreateProcess для "dir"? Может в вашем случае проще перенаправить потоки средствами коммандной строки посредством разделителья "|". Например: dir *.* | you.exe. В этом случае все данные которые раньше выводились на консоль будут перегаправлены на стандартный ввод you.exe.