Загрузка собственных COM-библиотек DLL в 64-битную среду

#c #com #64-bit #32bit-64bit #32-bit

#c #com #64-разрядный #32-разрядный-64-разрядный #32-разрядный

Вопрос:

У меня есть 32-битные / 64-битные COM-библиотеки DLL в C : mycom32.dll, mycom64.dll . Оба они точно такие же, но mycom32.dll скомпилирован для 32-разрядной и mycom64.dll скомпилирован для 64-разрядной версии. Это означает, что ОБЕ библиотеки DLL имеют одинаковый UUID и один и тот же CLSID!

Теперь, иногда я хочу использовать этот COM из 32-разрядных процессов, а иногда я хочу использовать этот COM из 64-разрядных процессов.

Возможно ли загрузить правильную DLL без создания двух разных CLSID и проверки во время выполнения, является ли процесс 32-битным / 64-битным?

Ответ №1:

Должна быть возможность зарегистрировать их обе без проблем; это часть того, что должно решить перенаправление реестра.

Вот более подробное объяснение того, как это работает.

Комментарии:

1. Прохладный. Я бы предположил, что вам понадобятся другие CLSID.