Могут мои COM-компоненты на 64 бита и на 32 бита co-reside на той же машине?

Отражение является ключевым механизмом, чтобы позволить приложению или платформе работать с кодом, который еще, возможно, не был даже записан!

Берут, например, Ваш типичный файл web.xml. Это будет содержать список элементов сервлета, которые содержат вложенные элементы класса сервлета. Контейнер сервлета обработает файл web.xml и создаст новый новый экземпляр каждого класса сервлета посредством отражения.

Другим примером был бы API Java для XML Парсинг (JAXP) . Где поставщик синтаксического анализатора XML 'включается - в' через известные системные свойства, которые используются для построения новых экземпляров посредством отражения.

И наконец, самый всесторонний пример Spring, который использует отражение для создания его бобов, и для его интенсивного использования прокси

5
задан Kev 9 July 2009 в 16:33
поделиться

1 ответ

This should be possible.

On 64-bit windows, the registry and file system is redirected for 32-bit applications. Registration for the 32-bit COM dll's will be under a separate location in the registry (HKLM\Software\Wow6432Node\Classes), and your COM components should live in separate folders, 64-bit under Program Files and 32-bit under Program Files (x86). The registry/file redirection for 32-bit apps should make this work transparently.

It is possible that the component itself could prevent this - for instance, if it creates global resources that would wind up conflicting between the 32-bit and 64-bit versions.

This situation already exists on 64-bit Windows. On my 64-bit system I have:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID{8856F961-340A-11D0-A96B-00C04FD705A2}\InProcServer32\Default = C:\Windows\SysWow64\ieframe.dll

And

HKEY_CLASSES_ROOT\CLSID{8856F961-340A-11D0-A96B-00C04FD705A2}\InProcServer32\Default = C:\Windows\System32\ieframe.dll

32-bit and 64-bit version of WebBrowser control on the same system.

7
ответ дан 14 December 2019 в 08:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: