Взаимодействие 32- и 64-битных версий в 64-битной Windows

Есть ли хороший исчерпывающий авторитетный справочник, в котором обсуждается взаимодействие между 32-битными и 64-битными процессами? Основываясь на поиске в Google, я пришел к выводу, что:

  1. 32-битная DLL может находиться только в 32-битном процессе, а 64-битная DLL - только в 64-битном процессе.
  2. 32-битные и 64-битные процессы могут взаимодействовать только с использованием слабосвязанных систем сообщений, например, сетевое взаимодействие, что означает, что они могут взаимодействовать с помощью COM / DCOM.
  3. 32- и 64-разрядные компоненты COM имеют разные записи в реестре. Компонент обычно регистрируется только в одном из двух и обычно виден только в одном из двух миров.
  4. 32-разрядный процесс может создать что-то, зарегистрированное как 64-разрядный компонент COM, только если он использует CoCreateInstance с 64-разрядным битовый флаг вызова или (и я предполагаю, что это возможно?), если 64-битный компонент каким-то образом зарегистрирован в 32-битном реестре, но под капотом все еще создается как внепроцессный 64-битный процесс , 1. 32-разрядное приложение не может использовать GetObject для получения работающей 64-разрядной версии Excel? Или может? Как проблема с 32-разрядной или 64-разрядной версией влияет на текущую таблицу объектов (ROT)? Может ли 32-разрядный процесс создать экземпляр Excel, если установлена ​​только 64-разрядная версия Office? Я бы подумал, что ответ будет «нет», если 32-битный процесс не использует 64-битный флаг в своем вызове CoCreateInstance, или если Excel каким-то образом также зарегистрировался в 32-битном мире?

    Делает ли Microsoft что-нибудь автоматически. Например, если CoCreateInstance из 32-битного процесса проверяет 64-битный реестр и пытается создать внепроцессный 64-битный компонент, если в 32-битном реестре его нет? Я видел некоторые примечания к выпуску из 64-битного Office, где Microsoft предупреждает о том, что доступ из 32-битных приложений к 64-битному Excel не работает, тем не менее, я знаю один случай, когда это, казалось, просто работало.

    Есть ли для этого хороший технический справочник?

8
задан Alexis Pigeon 27 July 2013 в 19:19
поделиться