Клиент / сервер COM пересекает 64/32 битные процессы

На 64-битной машине:

Может ли 64-битное приложение вызвать COM-сервер (out proc), работающий в 32-битном процессе?

А как же наоборот? (32-битное приложение, вызывающее 64-битный COM-сервер)

Спасибо!

2 ответа

Решение

Суть out-proc COM в том, что эти два процесса взаимодействуют через RPC (обычно LRPC), поэтому совершенно не важно, какая битность у каждого из них.

Мы использовали суррогат COM+ для принудительного включения 32-битных внутрипроцессных компонентов в отдельный процесс с единственной целью многократного использования их от 64-битных клиентов - при наличии всего необходимого для упорядочивания он работает без каких-либо усилий.

Это может быть актуально MIDL: 64-битное руководство по портированию.

В основном это говорит о том, что если вы передаете типы указателей (IUnknown и т.д.) все в порядке, но если вы обманываете, передавая указатель, замаскированный под DWORD Вы можете столкнуться с некоторыми проблемами.

Другие вопросы по тегам