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

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

Войти
Регистрация
Восстановить пароль
 
Bobby
4 / 4 / 1
Регистрация: 26.04.2012
Сообщений: 61
#1

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

23.02.2014, 23:38. Просмотров 1435. Ответов 7
Метки нет (Все метки)

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

Межпроцессное взаимодействие - C++
Добрый день. Подскажите как организовать межпроцессорное взаимодействие между 2мя программами одна на python другая на C++?

Межпроцессное взаимодействие и параллельное программирование. Литература - C++
Доброго времени суток. Собственно просьба видна из заголовка треда. Прошу порекомендовать хорошие книги по межпроцессному взаимодействию...

Взаимодействие VB и VC++ - C++
Взаимодействие VB и VCPP. VB60 и VCPP50. Помогите решить проблемку. Есть VB проект и dll на плюсах. Всё бы хорошо и всё...

Взаимодействие классов - C++
Решил потренироваться и написать "игру". Есть класс игрок и класс бот. Как наладить их взаимодействие? З.Ы. да, я знаю, что в классах нет...

Взаимодействие процессов - C++
Нужно написать задачу, в которой дано 10 процессов (там P1, P2, …, Р10, например) Функционирование и взаимодействие процессов следующее: ...

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

7
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
24.02.2014, 00:18 #2
Да тут просто всё. Создай переменную какую-нибудь в этой библиотеке и пусть один пишет что-нибудь в неё, а другой считывает.
1
Bobby
4 / 4 / 1
Регистрация: 26.04.2012
Сообщений: 61
24.02.2014, 00:30  [ТС] #3
Да, я думал об readprocessmemory, но усомнился, вдруг есть способ поэлегантней) Ок, спасибо. Так и сделаю.

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

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

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

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

Добавлено через 1 минуту
Jupiter, COM объект это сложно. Надо: прописал данные- считал данные. Всё.
1
Bobby
4 / 4 / 1
Регистрация: 26.04.2012
Сообщений: 61
24.02.2014, 00:58  [ТС] #8
Спасибо)
0
24.02.2014, 00:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2014, 00:58
Привет! Вот еще темы с ответами:

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

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

Взаимодействие C++ и Python - C++
Привет! Недавно разговаривал с другом, который учится за границей в сфере информационных технологий(не программирование, что то, связанное...

Взаимодействие с интернетом - C++
Напишите пожалуйста, про что читать:)


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

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

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