Графический интерфейс к консольному приложению
Спасибо!
через пайпы: popen() и pclose()
Цитата: Dmitryl
Потребывалось создать новое приложение с графическим интерфейсом с функциональностью как у существующего консольного приложения, путем взаимодействия с этим существующим приложением. Вопрос: как обычно выполняется ввод в консольное приложение из другого приложения(перенаправление ввода не очень подходит)? Про вывод не спрашиваю, т. к. консольное приложение дублирует его в файле.
Спасибо!
Спасибо!
Какая ОС? Если речь идёт о Windows (про другие системы, увы, не скажу -- не знаю), гугли по Anonymous Pipes.
http://www.codenet.ru/progr/bcb/pipes.php
http://sources.ru/cpp/using_anonymous_pipes.shtml
http://msdn2.microsoft.com/en-us/library/aa365139.aspx
http://en.wikipedia.org/wiki/Anonymous_pipe
http://forum.vingrad.ru/forum/topic-159665.html
http://symmetrica.net/uploads/linapi/linapi2.pdf
Цитата:
Какая ОС?
Windows.
Цитата:
через пайпы
А если приложение - DOS-приложение, а не обычная консолька?
Пробовал через пайпы осуществлять ввод\вывод, но пайп ломается, после того, как я из своего приложения запускаю дочерний процесс(DOS-приложение).
А программа интерактивная или может принимать необходимые параметры в командной строке?
1. файлы
2. общая память
3. переменные окружения
4. параметры ком. строки
5. перенаправление ввода
6. сокеты
7. пайпы
8. оконные сообщения
9. ключи реестра
В случае, если одно из приложений - DOS, то видимо только способы №№ 1, 3, 4, 5
Параметры через командную строку не может принимать.
[quote=GENA_DJ]
1. файлы
3. переменные окружения
4. параметры ком. строки
5. перенаправление ввода
...
если одно из приложений - DOS, то видимо только способы №№ 1, 3, 4, 5[/quote]
1. и 3. Эти средства я еще не рассматривал. DOS-прил-е - чужое(мне известны только форматы команд и форматы ответов).
4. Параметры через командную строку не может принимать.
5. Перенаправить ввод(сделать его, скажем из файла, у меня не получилось).
Вот это прил-е.
Да это же терминалка! А свою не быстрее за 20 минут написать?
Цитата: Vov4ick
Да это же терминалка!
Да где же "терминалка"? Натуральное приложение DOS.
Нет, эта штука через ком порт общается с милиомметром.
Протокол общения мне вообще не известен. Его можно попытаться узнать вооружившись осциллографом: смотреть что за пакеты отсылаются, какие присылаются, но это ооочень уж не рационально!
[QUOTE=Vov4ick]Да это же терминалка![/QUOTE]
?!! Запускается ntvdm.exe - значит написано под DOS, если я не ошибаюсь. Поэтому это не просто терминалка.
Млин, народ. Терминал(ка) - это и есть программа для общения с чем-либо обычно по COM-порту (обычно с модемом, но не только). При чём здесь операционная система? Что вы хотели осциллом там смотреть? какие пакеты? Возьмите любой другой терминал, скажем ZOC или мастдайный Hyper Terminal или встроенный в DN, короче какой больше нравится и поговорите с вашим вольтметром.
Проблема решилась: оказывается легче просто сделать свою программку(с помощью WinAPI работа с портом), чем взаимодействовать с терминалом и т. д.(а я то думал, что команды, которые я посылаю, кодируются и уже в таком виде передаются, а оказалось все гораздо проще: передаются непосредственно сами команды).
Спасибо за советы!