Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
__Dim__
0 / 0 / 0
Регистрация: 25.06.2009
Сообщений: 18
#1

Обмен данными между процессами - C++

05.05.2014, 14:46. Просмотров 727. Ответов 3
Метки нет (Все метки)

Уважаемое сообщество, подскажите, пожалуйста, с решением такой проблемы: у меня два процесса c# и с++, и мне необходимо передавать массив байт из одного процесса в другой, в частности из c#, в с++. В процессе c# я формирую MMF без физического файла. Подскажите, как реализовать доступ к этой области памяти из с++?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2014, 14:46     Обмен данными между процессами
Посмотрите здесь:

Обмен данными между процессами с помощью файлов, которые отображаются в память - C++
Классическая задача "читатели-писатели", обмен информацией должен проходить с помощью файлов, отображаемых в память. Задание уже готово, но...

Обмен данными между 2 клиентами через интернет - C++
Пожалуйста, подробно опишите, как сделать обмен данных через интернет между клиентами. На с++, или на delphi код - не особо важно. Данные...

межпрограммный обмен данными - C++
Помогите сделать , чтобы при вводе в одной консоле(сервере) выдавала на другую консоль(клиент) текст В данный момент этот код выдаёт...

Канал между процессами - C++
Задача у программы такова. Имеется основная программа(main) и две дополнительных(prc1 и prc2). В prc1 и prc2 стоит прогресс бар, который...

Обмен данными по COM порту на нестандартной скорости - C++
подскажите пожалуйста, как написать программу для обмена данными по COM порту на не стандартной скорости, например 10400бод.

Обмен данными с ЭБУ через RS-232 - C++
Всем добра, уважаемые форумчане! Это мой первый пост, прошу сильно не ругать:) Итак, поехали: Задача- "поговорить" с ЭБУ через...

Обмен данными через файлы по локальной сети - C++
Пусть два .exe-шника при себе имеют файлы Input.txt и Output.txt, у каждого отдельная папка, к примеру Папка 1 и Папка 2. Существует обмен...

Взаимодействие между процессами двух приложений - C++
В задании к лабораторной сказано, что нужно открыть файл в одном приложении, а считывать данные с помощью другого приложения. Не могу...

Переслать вектор N процессам, используя различные виды связи между процессами (MPI_Alltoall) - C++
Переслать вектор, размерности M, N процессам, используя различные виды связи между процессами. Элементы вектора задаются произвольно....

Обмен между приложениями - C++
Есть два приложения в ОС Windows , одно консольное которое ждет ввода трех чисел std::cin , второе диалоговое , диалоговое запускает...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
stima
455 / 304 / 23
Регистрация: 22.03.2011
Сообщений: 990
Завершенные тесты: 2
05.05.2014, 16:18     Обмен данными между процессами #2
http://lmgtfy.com/?q=interprocess+communication
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
05.05.2014, 16:41     Обмен данными между процессами #3
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
newbie666
Заблокирован
05.05.2014, 16:52     Обмен данными между процессами #4
Цитата Сообщение от Jupiter Посмотреть сообщение
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Немного строк...(классическая схема)
В софте на С++ открываешь проецируемый в память файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HANDLE hMutex = OpenMutex(MUTEX_ALL_ACCESS, FALSE, L"MySuperNamedMutex");
    if (hMutex && hMutex != INVALID_HANDLE_VALUE)
    {
        DWORD dwWait = WaitForSingleObject(hMutex, 1000);
        switch (dwWait)
        {
        case WAIT_OBJECT_0:
            {
                HANDLE hMapFile = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, L"NameOfMyMAppedFile:-)");
                if (hMapFile != INVALID_HANDLE_VALUE)
                {
                    LPVOID lpMapAddress = MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 0);
                    if (lpMapAddress)
                    {
                        byte *buffer = (byte*)lpMapAddress; //ДАННЫЕ ТВОЕГО ПРОЕЦИРУЕМОГО В ПАМЯТЬ ФАЙЛА....
где L"MySuperNamedMutex" - имя именного мьютекса, которое должно быть общим для софта в С++ и C#,
где L"NameOfMyMAppedFile:-)" - имя самого объекта фала в памяти (не на HDD), которое должно быть общим для софта в С++ и C#
Yandex
Объявления
05.05.2014, 16:52     Обмен данными между процессами
Ответ Создать тему
Опции темы

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