Как передать сгенерированные объекты image / bitmap / GDI другому процессу? - PullRequest
1 голос
/ 18 февраля 2010

У меня есть процесс A, который генерирует объекты GDI HBITMAP для рисования на экране. У меня есть другой процесс B, который хочет отобразить содержимое изображений, которые создает процесс A.

Я планирую осуществлять связь / разговор, используя очередь сообщений «точка-точка» или другую передачу сообщений; и использовать общую память (вместе с мьютексом и / или событиями) для обмена данными.

Как я могу поделиться данными изображения? Я прочитал здесь , что не гарантируется, что дескрипторы объектов GDI будут общими для процессов. Совместное использование файлов на самом деле не вариант, так как изображения постоянно меняются (но я по-прежнему считаю это, если нет другого пути).

В добавление к ингредиентам процесс A записывается с использованием eVC4 (PPC2003 SDK), а процесс B - с использованием VS2005 (WM 6 Pro SDK). У меня есть рабочий исходный код обоих приложений, поэтому я могу внести некоторые изменения в оба приложения, но пока не перенесу приложение A в VS2005.

Является ли COM IImage опцией?

Я предпочитаю собственные коды, но также рассматриваю управляемые коды.

1 Ответ

2 голосов
/ 18 февраля 2010

Используйте CreateDIBSection с объектом общей памяти HANDLE в качестве дескриптора раздела. HBITMAP, который вы получаете от CreateDIBSection, может не использоваться совместно с другим процессом (я не знаю), но если другой процесс также создает раздел DIB из того же объекта общей памяти, то биты битовой карты будут общими. *

...