![]() |
|
|
![]()
|
|
| elom |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 4.9.2006 Репутация: нет Всего: нет |
Проблема следующая.
Есть GUI он запускает внешнюю консольную програму с параметрами и должен получит данные от програмы, в принципе сообщения об ошибках другие данные програма не возвращает. Я создал pipe и дочернему process который запускает програму передал handle на запись. Данные читаю с pipe. Я все сделал как было описано тут Тихий вызов внешней коммандно-лииевой программы, Чтоб ее вывод получить Все работает при запуске в Builder 6. Когда запускаю просто файл exe вне Builder данные не приходят. Помогите в чем проблема Код такой
В Comand_Line передаеться полное имя програмы и параметры. |
|||
|
||||
| Damp1L |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Хм.. и вправду такое наблюдается...
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Добавь pipe для stdin
|
|||
|
||||
| elom |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 4.9.2006 Репутация: нет Всего: нет |
К сожалению без изменения все тоже
Помогите Я вывел в файл значения функций которые вызываю CreateProcess CreatePipe все 1 возвращают.А NumberOfBytes=0 |
||||||
|
|||||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Глупый вопрос - консольная программа, вывод которой ты пытаешься получить, Win32 или DOS программа? Для DOS программ это напрямую не работает.
Добавлено через 10 минут и 42 секунды Да, попробуй еще убрать CREATE_NEW_PROCESS_GROUP из запуска процесса |
|||
|
||||
| elom |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 4.9.2006 Репутация: нет Всего: нет |
quote]
Да, попробуй еще убрать CREATE_NEW_PROCESS_GROUP из запуска процесса [/quote] Тоже безрезультатно.
Я запускаю компилятор MinGw gcc под виндой. Может ето и DOS програма - незнаю. А что делать если ето DOS програма? |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
MinGw это не DOS программа. DOS программы надо запускать через Win32 console пускач. А собственно MinGw стартует? Может до исполнения и не доходит. Проверь код возврата и попробуй еще запустить с перенаправлением потоков с коммандной строки (через '>'), посмотри что будет в перенаправленном файле, может он действительно пустой. Это сообщение отредактировал(а) xvr - 27.1.2008, 14:31 |
||||
|
|||||
| elom |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 4.9.2006 Репутация: нет Всего: нет |
Он стартует. Более того если я запускаю прогу в Builder он нормально возвращает все найденные ошибки в коде. Но если запускать одельно просто exe файл то ни фига не возвращаеться. Я делал все одинаково токо один раз запустил под Builder а другой просто exe файл и в первый раз все пашет а во второй нет.
Вопрос а как посмотреть код возврата? Если перенаправит в файл, то он действительно пустой, так как ошибки выводяться в стандарный поток ошибок StdError. А как перенаправить в файл с етого потока, я не знаю может подскажете? |
||||
|
|||||
| xvr |
|
||||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Он может стартовать под Buildero'ом и обломаться без него
|
||||||||||||
|
|||||||||||||
| elom |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 4.9.2006 Репутация: нет Всего: нет |
Подскажите как выполнить перенаправление в файл. Я в переменную командной строки Comand_Line добавил 2>E:\outerr.tmp
Мне прога которую я запускаю - gcc возвращает, что 2>error.txt не коректній параметр. Также попробывал через WinExec. Тоже не хочет выводить в файл. В Comand_Line="D:\MinGW\bin\gcc.exe -o E:\main E:\main.c 2>E:\outerr.tmp" |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Попробуй cmd -c "D:\MinGW\bin\gcc.exe -o E:\main E:\main.c 2>E:\outerr.tmp", или вообще сложи эту строку в bat файл и запускай его Кстати, какая ОС? |
||||
|
|||||
| elom |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 4.9.2006 Репутация: нет Всего: нет |
Windows XP Вывод через файл работает Это сообщение отредактировал(а) elom - 31.1.2008, 01:05 |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Вот, выдрал из рабочей программы. Добавка к сорцам:
Это сообщение отредактировал(а) xvr - 31.1.2008, 15:38 Присоединённый файл ( Кол-во скачиваний: 14 )
clexe.zip 2,59 Kb |
||||||
|
|||||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |