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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.70
Kiton
0 / 0 / 0
Регистрация: 12.05.2012
Сообщений: 7
#1

Передача данных между двумя приложениями. - C++

12.05.2012, 08:19. Просмотров 3041. Ответов 3
Метки нет (Все метки)

Суть проблемы такова: есть приложение на с#, производящее вычисления, результатом является массив данных. Есть прога на с++ + QT, умеющая визуализировать подобные данные. Вопрос: можно ли как-то передать данные (массив интов) из проги на с# в прогу на с++ в реальном времени (т.е., например, без записи в файл и чтения)?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2012, 08:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача данных между двумя приложениями. (C++):

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

Распространение данных между приложениями с использованием DLL - C++
Возможно ли использовать dll как "ретранслятор" данных для приложений? Те первым приложением вызывается функция "set", которая...

Передача данных между потоками - C++
Есть сервер. Для каждого клиента он создает новый поток и работает с ними независимо от остальных...Например мне надо чтобы получив...

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

Передача данных между классами - C++
Здравствуйте! Программирую графику на C++ под DirectX9, если точнее то пытаюсь написать простой редактор 3D графики. есть класс...

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

3
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
12.05.2012, 08:29 #2
Можно, если размер массива не сильно большой. Можно через глобальную память передавать или маршалить между процессами, но тогда вдвое больше памяти оперативной потребуется.
Если массив не большой (несколько мегабайт, например), то можно через буфер обмена Windows. Это самый простой способ, потому что не будет проблем с синхронизацией.
0
Kiton
0 / 0 / 0
Регистрация: 12.05.2012
Сообщений: 7
12.05.2012, 08:37  [ТС] #3
Спасибо! А можно пример или ссылку как в с++ (qt) проге вытащить данные из буфера обмена?
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
12.05.2012, 08:55 #4
Я фрагмент кода скопирую. BuildData строку формирует, остальные функции это WinAPI.
Этот код копирует данные в буфер обмена. Нужно второму приложению послать сообщение о необходимости извлечь данные из буфера. WM_COPYDATA, если не ошибаюсь.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
        std::wstring data;
        BuildData( data );
 
        wchar_t * lptstrCopy = NULL; 
        HGLOBAL hglbCopy = NULL; 
 
        if( !OpenClipboard() ) 
            return; 
 
        EmptyClipboard(); 
 
        hglbCopy = GlobalAlloc( GMEM_MOVEABLE, (data.size()+1)*2 ); 
        if (hglbCopy == NULL) 
        { 
            CloseClipboard(); 
            return; 
        } 
 
        lptstrCopy = (wchar_t*)GlobalLock(hglbCopy); 
 
        memcpy(lptstrCopy, data.c_str(), data.size()*2);
        lptstrCopy[data.size()] = 0;
        GlobalUnlock(hglbCopy); 
 
        SetClipboardData(CF_UNICODETEXT, hglbCopy); 
 
        CloseClipboard();
0
12.05.2012, 08:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2012, 08:55
Привет! Вот еще темы с ответами:

Передача данных между программами - C++
Здравствуйте, Уважаемые! Предо мною встала проблема. Есть две программы, которые должны связываться между собой. Точнее одна программа...

Сообщения между win32 приложениями - C++
Как отправить сообщение (аналог системных типа WM_DESTROY только свои) и обработать приемником? приёмник это обычное консольное win32...

Технология обмен данными между приложениями - C++
Приветствую профессионалов и любителей программирования! Принимайте новичка. Собственно такой вопрос, скорее системного характера....

Как обмениваться данными между приложениями в сети? - C++
Есть несколько приложений работающих в сети (TCP/IP) Необходимо организовать между ними обмен данными, как это лучше сделать? При помощи...


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

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

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