Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Связь 2-х приложений


Автор: Anden 16.3.2007, 09:11
Я написал 2 программы.1- занимается обменом данных по RS-232C а 2- визуализацией и обработкой.1-ая записывает все полученые данные с портае в файл.2-ая работает с этим файлом.Помогите пожайлуста , как можно передавать данные с одного приложения в другое  посредствам ОЗУ

Автор: dumb 16.3.2007, 10:28
поиск по: MMF, CreateFileMapping, MapViewOfFile.

Автор: pandrew 16.3.2007, 10:51
А также: обмен данными между приложениями
Хотя логичнее объединить в одном приложении опрос RS-232(возможно в DLL или COM)  и визуализацию.

Автор: ama_kid 16.3.2007, 11:07
В добавление: посмотреть в сторону http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/dataexchange/datacopy/datacopyreference/datacopymessages/wm_copydata.asp
Цитата
An application sends the WM_COPYDATA message to pass data to another application.

Автор: Anden 16.3.2007, 13:03
Ссылку я посмотрел.А кто нибудь может написать элементарный примерчик, пожайлуста

Автор: ama_kid 16.3.2007, 15:39
Anden
см. в аттаче...
Написал щас на Turbo С++ Builder (мля, уже сто лет на билдере не писал). В архиве есть также скомпиленные версии программы Client и Server. Запускаешь обе, в клиенте нажимаешь "Get" (получить хэндл) - он появляется в поле едит - его копируешь в первый едит сервера. И в сервере в полях вводишь данные и нажимаешь "послать" - они появляются в клиенте... Все работает через WM_COPYDATA.
Удачи...

Автор: Tectoder 16.3.2007, 16:05
На самом деле для ситуации когда одно приложение чтото пишет, а другое читает идеально подходят именованные каналы( Named Pipe )
Собственно, именно для этой цели они и создавались.
Пример их использования можно найти в MSDN, в описании функции CreateNamedPipe

Автор: Anden 19.3.2007, 18:46
Цитата(ama_kid @ 16.3.2007,  15:39)
Anden
см. в аттаче...
Написал щас на Turbo С++ Builder (мля, уже сто лет на билдере не писал). В архиве есть также скомпиленные версии программы Client и Server. Запускаешь обе, в клиенте нажимаешь "Get" (получить хэндл) - он появляется в поле едит - его копируешь в первый едит сервера. И в сервере в полях вводишь данные и нажимаешь "послать" - они появляются в клиенте... Все работает через WM_COPYDATA.
Удачи...

Никак не могу скачать файл.Может мне на мыло скинешь этот же файл. box_82собакаmail.ru

Добавлено @ 18:46 
Цитата(ama_kid @ 16.3.2007,  15:39)
Anden
см. в аттаче...
Написал щас на Turbo С++ Builder (мля, уже сто лет на билдере не писал). В архиве есть также скомпиленные версии программы Client и Server. Запускаешь обе, в клиенте нажимаешь "Get" (получить хэндл) - он появляется в поле едит - его копируешь в первый едит сервера. И в сервере в полях вводишь данные и нажимаешь "послать" - они появляются в клиенте... Все работает через WM_COPYDATA.
Удачи...

Никак не могу скачать файл.Может мне на мыло скинешь этот же файл. box_82собакаmail.ru

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)