![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| heilage |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 21.4.2007 Где: Новосибирск Репутация: нет Всего: нет |
Собственно сабж. Дано: консольное приложение, которое выводит некоторые структурированные данные в stdout и считывает из stdin. К исходникам этого приложения доступа нет. Нужно: на WinAPI или MFC сделать красивую морду для этого приложения: окно вывода, в котором данные выводятся в удобном виде и набор кнопочек, по которому консольному приложению в stdin отсылаются команды. С собственно написанием обертки проблем не возникло, но затык произошел на стадии соединения двух приложений.
Как делал я: 1) Сначала пробовал получать/передавать через _popen(). Все хорошо и все работает, если бы не одно известное НО - обертка при этом полностью повисает. В результате вариант отброшен как неработоспособный. 2) Потом пробовал делать через WinAPI-функции, то есть CreatePipe - DuplicateHandle - CreateProcess - ReadFile|WriteFile. Все хорошо и ничего не подвисает, но данные в упор не идут %) Дебагинг показал, что ReadFile в упор не желает читать данные (читает 0 байтов), хотя GetLastError возвращает ERROR_BROKEN_PIPE, что, насколько я понял из мануалов, свидетельствует о том, что процесс чтения успешно завершен и ни одного байта не прочитано. У меня довольно небольшой опыт общения с пайпами, может ли кто-нибудь подсказать в какую сторону копать? Чую что грабли распространенные, но гугль по этому поводу выдает ссылки не совсем в тему =/ Буду рад любым наводящим вопросам Это сообщение отредактировал(а) heilage - 15.3.2009, 11:17 |
|||
|
||||
| leneCaress |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 12.12.2008 Где: Москва Репутация: нет Всего: 1 |
простой и топорный вариант: выпихнуть все взаимодействие с программой в отдельный поток. (а взаимодействовать хоть через тот-же _popen() )
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |