Клиент / сервер 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
Вы можете столкнуться с некоторыми проблемами.