Windows — Как отправить байтовый массив другому процессу в Stack Overflow

Я проверял на сайте способ передачи данных из процесса в другой в C ++. Я нашел метод SendMessage (), но, похоже, он не может принимать байтовый массив.

Чтобы немного объяснить контекст, у меня есть приложение, которое отправляет данные другому. У нас есть несколько объектов с разными идентификаторами. Получающее приложение создает вкладку для каждого объекта. Если приложение, которое получает данные, закрыто, мы запускаем новый процесс и показываем данные пользователю. Если мы отправляем второй раз, нам нужно проверить с идентификаторами, чтобы увидеть, если у нас уже есть один из объектов, если да, замените его. В противном случае добавьте новые вкладки для новых объектов.

Мы используем буферы протокола от Google, и они работают с байтовыми массивами для транспортировки и сериализации, поэтому мне нужно найти способ отправки байтового массива из процесса в другой.

Я смог получить HWND процесса, но я не знаю, куда идти дальше.

4

Решение

Межпроцессное взаимодействие — вещь, специфичная для платформы. В Windows есть много способов сделать это. Эта статья MSDN описывает несколько методов и их плюсы, минусы и варианты использования:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365574(v=vs.85).aspx

Когда вы управляете обоими приложениями, а поддержка сторонних приложений вас не беспокоит, отправка WM_COPYDATA сообщение через SendMessage () для другого процесса может быть хорошим подходом.

3

Другие решения

Если вы хотите использовать SendMessage, вы можете использовать WM_COPYDATA сообщение для отправки блока данных, хотя это просто блок байтов, а не объект.

2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector