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

Межпроцессное взаимодействие - C++

Восстановить пароль Регистрация
 
Bobby
4 / 4 / 1
Регистрация: 26.04.2012
Сообщений: 61
23.02.2014, 23:38     Межпроцессное взаимодействие #1
Здравствуйте. Подскажите пожалуйста, как лучше и проще будет организовать межпроцессное взаимодействие. Есть динамическая библиотека используемая некоторыми процессами(не инжектил). Как можно достучаться до этой библиотеки? Вызвать парочку геттеров? Библиотека моя.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2014, 23:38     Межпроцессное взаимодействие
Посмотрите здесь:

C++ Взаимодействие процессов
C++ Взаимодействие с железом
Взаимодействие плагинов C++
C++ Взаимодействие VB и VCPP.
Взаимодействие с сайтами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
24.02.2014, 00:18     Межпроцессное взаимодействие #2
Да тут просто всё. Создай переменную какую-нибудь в этой библиотеке и пусть один пишет что-нибудь в неё, а другой считывает.
Bobby
4 / 4 / 1
Регистрация: 26.04.2012
Сообщений: 61
24.02.2014, 00:30  [ТС]     Межпроцессное взаимодействие #3
Да, я думал об readprocessmemory, но усомнился, вдруг есть способ поэлегантней) Ок, спасибо. Так и сделаю.

Добавлено через 3 минуты
Не сильно ли накладно будет, в бесконечном цикле постоянно читать память?)

Добавлено через 3 минуты
Была еще идея создать слушающий сокет, но опять же надо как то узнать на каком порту он висит, можно конечно в реестр пихнуть пид и номер порта)
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
24.02.2014, 00:36     Межпроцессное взаимодействие #4
Ну способов много на самом деле, но самый быстрый- это чтение из одной и той же области памяти, как ты придумал или с помощью разделяемых файлов, что-то такое.
+++++++++++++++++++++++++++++++++++
Накладно, надо типа такого делать:
C++
1
2
3
4
while (true) {
 Sleep (1000)
 //Читаем память.
}
Но дело не в этом даже. По-моему, тебе надо по хуки прочитать. Суть: загружается dll-ка и, особым образом скомпиленная, становится видимой во ВСЕХ процессах. Таким образом её видят все процессы. Я сходу не могу собразить, как сделать так, чтобы один писал в переменную, другой читал из неё, ведь переменная будет создаваться не в dll, а в стеке, который этой dll-ке как бы принадлежит. То есть dll-ка видна ВСЕМ процессам, но её стек- нет. Я забыл, как эту задачу решал, но решал как-то.

Если силён в асме, могу дать статью, там код. Прочтёшь и всё поймёшь, переделаешь под C++. Я так и делал.
Bobby
4 / 4 / 1
Регистрация: 26.04.2012
Сообщений: 61
24.02.2014, 00:41  [ТС]     Межпроцессное взаимодействие #5
Да, от статьи не откажусь. Не силен, но любопытно почитать. Спасибо.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.02.2014, 00:44     Межпроцессное взаимодействие #6
Цитата Сообщение от Bobby Посмотреть сообщение
Есть динамическая библиотека используемая некоторыми процессами(не инжектил). Как можно достучаться до этой библиотеки? Вызвать парочку геттеров?
COM объект
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
24.02.2014, 00:54     Межпроцессное взаимодействие #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
В личку кину.
Извини, что больше ничем не могу помочь, тем более, что я сам подобное проворачивал. Тема интересная, можно было бы восстановить знания, но мне некогда.

И кстати, если тебе нужно просто обмениваться данными между процессами БЫСТРО, тогда используй файлы, проецируемые в память. То же что и dll, только просто файлы, а значит, с ними меньше заморочек. ЭТО смотри у Побегайло, глава
"30.4. Обмен данными между процессами через отображаемый в память", могу книгу кинуть.

Добавлено через 1 минуту
Jupiter, COM объект это сложно. Надо: прописал данные- считал данные. Всё.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2014, 00:58     Межпроцессное взаимодействие
Еще ссылки по теме:

Взаимодействие объектов C++
C++ Взаимодействие классов
Взаимодействие с браузером C++

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

Или воспользуйтесь поиском по форуму:
Bobby
4 / 4 / 1
Регистрация: 26.04.2012
Сообщений: 61
24.02.2014, 00:58  [ТС]     Межпроцессное взаимодействие #8
Спасибо)
Yandex
Объявления
24.02.2014, 00:58     Межпроцессное взаимодействие
Ответ Создать тему
Опции темы

Текущее время: 03:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru