Вы не можете загрузить 32-битную библиотеку в 64-битный процесс, и наоборот - библиотека и процесс должны иметь одинаковую битность.
Лучшее решение - получить 64-битнуюверсия библиотеки COM-сервера.Если это невозможно (что вполне обычно), у вас есть два варианта:
- сделать программу-потребитель 32-битной (вероятно, вам нужно изменить цель с «Любой процессор» на «x86» в VisualStudio)
- принудительно назначить COM-сервер суррогатным процессом (для этого используйте COM +).
В первом случае вы делаете и программу, и COM-сервер 32-разрядными, и поэтомуБиблиотека COM-сервера загружается нормально.Во втором случае COM + создает 32-битный суррогатный процесс и загружает в него библиотеку, ваша программа связывается с этим процессом через RPC, поэтому вам не нужно беспокоиться о разности битов.
Обе опции имеют недостатки.В первом случае вы делаете свою программу 32-битной даже на 64-битных системах.Во втором случае вы сталкиваетесь с накладными расходами из-за межпроцессного взаимодействия.