основной форум
Архив сообщений 2004-2006 года

Алгоритмы, методы, исходники


Алгоритмы >> Реализация, исходники, языки

Страницы: 1
Student83
новичок


Рег.: 03/27/05
Сообщений: 3
Взаимодействие программ
      #7160 - 09/23/05 05:30 AM

Доброе время суток! Писал я себе програмки на Форитране, писал, и тут неожиданно встала пере до мной проблемма, которой я сейчас буду с вами делиться.
Есть у меня мои програмки (как текст так и скомпилированный вариант(*.exe)), а вот как установить связь между ними я не знаю...Мне надо что бы одна из "exeшных" программ обращалась к другой и они совместно обменивались информацией и производили необходимые вычисления.
Вот такая у меня проблемма на сегдняшний день. Буду признателен за дельный совет любого рода (да же если книгу посоветуете какую почитать).


Операции над сообщением Печать сообщения   Добавить тему в напоминания!   Известить модератора  
Katkovsky
опытный
***

Рег.: 02/15/05
Сообщений: 352
Из: Москва
Re: Взаимодействие программ [Re: Student83]
      #7161 - 09/23/05 07:49 AM

1.Вообще Вам надо подключаться к ОП. Там будет решаться проблема стыковки различных модулей, в т.ч. и на Фортране (Форитране?).
2. Наиболее удобно работать в среде "VISUAL". Наприме Intel Visual Fortran ver. 7, 8, 9 или Compaq Visual Fortran ver. 6, 7 в режиме CONSOLE. В этом режиме Вы сможете удобно компоновать все Ваши текстовые модули в единый загрузочный модуль с автоматическим подключением нужных системных библиотек. Еще более удобно работать в Microsoft Visual Studio.NET. В ее среде легко "подцепляются" все трансляторы: Фортран, С++, C# и др., и можно компоновать загрузочный модуль из п/п на разных языках. Все нужные программы и трансляторы Вам может принести "электронный ослик" (eMule). Запустите поиск по ключевым словам и скачивайте!


Операции над сообщением Печать сообщения   Добавить тему в напоминания!   Известить модератора  
PAVМодератор
заслуженный
*****

Рег.: 06/15/04
Сообщений: 402
Из: Ульяновск
Re: Взаимодействие программ [Re: Student83]
      #7163 - 09/23/05 07:03 PM

Если Ваши программы работают в OC Windows, то в этой системе, т.к. она является многозадачной, предусмотрены возможности обмена даннымы между различными
thread
В ответ на:


поток; нить ( создаваемый многозадачной операционной системой объект (один или несколько) внутри процесса, который выполняет инструкции программы; потоки позволяют осуществлять параллельное выполнение процессов и одновременное выполнение одним процессом различных частей программы на различных процессорах )
Abbyy Lingvo




В Windows предусмотрено несколько механизмов обмена данными: общая область памяти -- clipboard, протокол динамического обмена двнными -- DDE, Component Object Model -- COM(на русский как ни переведи, все коряво получается .
Тема посвященная этому вопросу весьма обширная, по сути надо описать довельно большой кусок операционной системы.
Посмотрите clipboard, если этого окажется недостаточно читайте MSDN.


Операции над сообщением Печать сообщения   Добавить тему в напоминания!   Известить модератора  
Неизвестный
Незарегистрирован




Re: Взаимодействие программ [Re: Student83]
      #7686 - 11/09/05 08:02 AM

Хочется добавить: сегодня самый простой и самый кросс-платформенный способ взаимодействия - работа с файлами, разделяемыми между приложениями - практически ничем не уступает в эффективности более продвинутым способам вроде COM/OLE/DDE. Если файл невелик, то он наверняка скэшируется любой уважающей себя операционной системой, и передача данных через него сведется к простому копированию блоков памяти. Тем более, если чтение/запись в него организована путем мапирования (file mapping). Остается единственный вопрос - передача сообщений (когда именно следует выполнить анализ файла и соответствующее действие). Но и это в современных ОС решается банальным запуском нового экземпляра приложения (EXE-файла в случае Windows) с соответствующими параметрами. Ибо приложения тоже прекрасно кэшируются, а их неизменяемый код разделяется между разными запусками, так что повторный "запуск" программы в сущности сводится к вызову некоторой процедуры в уже загруженном в память коде.

Иначе говоря, рекомендую "быть проще". Запускайте новые экземпляры программы с нужными параметрами, а всю информацию передавайте в файлах. Если, конечно, счет идет не на наносекунды. Тогда лучше вообще забыть о взаимодействии между процессами и использовать нормальные вызовы процедур (методов объектов).


Операции над сообщением Печать сообщения   Добавить тему в напоминания!   Известить модератора  
Studens
новичок


Рег.: 08/20/06
Сообщений: 5
Re: Взаимодействие программ [Re: Student83]
      #11940 - 08/26/06 10:12 AM

Эта задача возникла давно и давно решена. Функции для взаимодействия программ есть практически во всех ОС, даже в ДОС.

http://www.google.com/search?hl=ru&q=%2BIPC+%2Bmessage


Операции над сообщением Печать сообщения   Добавить тему в напоминания!   Известить модератора  
bug008
новичок


Рег.: 11/11/05
Сообщений: 14
Из: Россия, Самара
Re: Взаимодействие программ [Re: PAV]
      #11941 - 08/26/06 06:58 PM

Под Win есть также способ основанный на сообщении WM_COPYDATA.

Операции над сообщением Печать сообщения   Добавить тему в напоминания!   Известить модератора  
Страницы: 1



Дополнительная информация
0 зарегистрированных и 404 анонимных пользователей просматривают этот форум.

Модератор:  Илья Кантор, PAV, Sergeyev 

Распечатать тему

Права
      Вы не можете создавать новые темы
      Вы не можете отвечать на сообщения
      HTML выключен
      UBBCode включен

Рейтинг:
Просмотры темы: 13995

Rate this topic

Переход в