Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Vergil Alighier
0 / 0 / 0
Регистрация: 17.09.2015
Сообщений: 7
Завершенные тесты: 1
#1

Передача данных между программами - C++

09.02.2016, 12:00. Просмотров 679. Ответов 8

Здравствуйте, Уважаемые!
Предо мною встала проблема.
Есть две программы, которые должны связываться между собой. Точнее одна программа должна посылать другой программе данные.
Раньше всё крутилось на сокетах, но в связи с некоторыми проблемами пришлось отказаться от любых протоколов, хоть как-то связанных с сетевыми. Та же проблема возникла с именованными каналами. (вкратце есть машины где такие действа не разрешены и нам надо подстроиться под них)
Перешли на буфер обмена, но и тут оказалось не всё так просто.. Программа в секунду может пересылать до 200 сообщений, из-за чего некоторые данные не успевали приходить.
Программа приёма данных написана на С++, программа передачи на С#.

Интересуюсь у профессионалов методами быстрой и надёжной передачи данных между программами. Какие есть варианты? И если есть ссылки или примеры, то был бы рад если поделитесь))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2016, 12:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача данных между программами (C++):

Сайт для экспериментов с программами (Интерпретатор онлайн) - C++
Полезная штука для форумов, когда проверяешь чужой код, а компилятора под рукой нет. Не придумал, куда его поместить, поместил сюда. А так...

книга Windows 2000 API Р.Саймон где скачать диск с программами? - C++
книга Windows 2000 API Р.Саймон где скачать диск с программами который идет к книге?

Передача данных между приложениями - C++ Builder
Нужно из одного приложения передать строку в другое.Как это реализовать? Искал много было типа WM_COPYDATA и не разобрался. Если можно...

Передача данных между формами - C++ Builder
Доброго времени суток! У меня тут образовалась одна вроде и простая проблемка, однако я в полнейшем тупике. У меня есть 1 форма, из...

Передача данных из БД между динамическими Child окнами в MDI приложении - C++ Builder
Есть родительская форма Form1. Из нее динамически создается дочерняя Form2. В этой форме есть запрос ADOQuery. Для редактирования данных...

Обмен информацией между программами. Как реализуется? - C++ Builder
Как реализуется обмен информацией между программами? Грубо говоря. Есть одна программа. Она что-то делает (допустим число в степень...

8
Usaga
Эксперт .NET
2330 / 2003 / 373
Регистрация: 21.01.2016
Сообщений: 7,753
Завершенные тесты: 2
09.02.2016, 18:13 #2
Цитата Сообщение от Vergil Alighier Посмотреть сообщение
Перешли на буфер обмена
вот это жескачина))
Попробуйте Memory Mapped File. Это может быть побыстрее, чем сокеты.
1
Vergil Alighier
0 / 0 / 0
Регистрация: 17.09.2015
Сообщений: 7
Завершенные тесты: 1
10.02.2016, 03:55  [ТС] #3
Цитата Сообщение от Usaga Посмотреть сообщение
вот это жескачина))
Есть такое)) Это уже на совести заказчика было, но к моему удивлению всё очень быстро работало (пусть и слегка недостаточно)))))

Спасибо за информацию по Memory Mapped File. По описанию, вроде, идеально подойдёт (и надеюсь они есть в .Net 2.0))))))

Через день отпишусь как дела)

Добавлено через 9 часов 9 минут
Как выяснилось .Net 2.0 всё-таки не имеет классов для работы MMF, а переходить на более новый .Net возможности.. Придётся подыскать что-то другое
0
Usaga
Эксперт .NET
2330 / 2003 / 373
Регистрация: 21.01.2016
Сообщений: 7,753
Завершенные тесты: 2
10.02.2016, 05:27 #4
Чем продиктовано такое жёсткое ограничение? Что в .NET2.0 есть такого, чего нет/ломается при переходе на .NET4.0?
0
Vergil Alighier
0 / 0 / 0
Регистрация: 17.09.2015
Сообщений: 7
Завершенные тесты: 1
10.02.2016, 07:02  [ТС] #5
продиктовано начальством. А именно из-за ОС, на которые нет возможности поставить framework новее второго.
есть Xp и старенькие WinPos которые надо обновлять чтобы установить новый фреймворк (там надо обновлять windows installer, который за собой тянет обновы ОС), а клиенты этого не дают.
0
Usaga
Эксперт .NET
2330 / 2003 / 373
Регистрация: 21.01.2016
Сообщений: 7,753
Завершенные тесты: 2
10.02.2016, 07:36 #6
Вот это засада. Ну что ж, надеюсь у вас всё получится.
1
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
10.02.2016, 15:50 #7
А в C# нельзя нативы дергать? Если можно, то есть еще такое Boost.Interprocess
0
Usaga
Эксперт .NET
2330 / 2003 / 373
Регистрация: 21.01.2016
Сообщений: 7,753
Завершенные тесты: 2
10.02.2016, 16:47 #8
Да, можно Win32 API использовать без проблем особых
0
Vergil Alighier
0 / 0 / 0
Регистрация: 17.09.2015
Сообщений: 7
Завершенные тесты: 1
11.02.2016, 04:07  [ТС] #9
Я как раз сейчас пишу либку с бустом для использования в С#. Чисто буст использовать нельзя в шарпе из-за различных макросов и т.д. и т.п. Тем более boost из себя представляет библиотеку шаблонов, а не классов или функций))
В общем получится некая обёрточка над бустовскими именованными каналами для С#))
0
11.02.2016, 04:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2016, 04:07
Привет! Вот еще темы с ответами:

Передача параметров между потоками - C++ Builder
нужна помощь, здесь есть баг найти не могу( Суть задачи: поток в C ++ Builder с передачей параметров первий юніт #include <vcl.h> ...

Передача матриц между Формами - C++ Builder
Извените за столь детский вопрос, но подскажите плиз. Как с Form2 передать посчитанные данные в Form3??Доступ к Form3 идет только с Form1.

Передача параметров между модулями - C++ Builder
Подскажите как сделать ,чтобы значения парметров передавались между модулями?Вот я допустим пишу в обработчике кнопки на Form1: ...

Передача handle между процессами - C++ Builder
Есть 1й процесс который создает файл и записывает в него информацию из Edit, после чего создает 2й поток и в качестве параметра передает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.