Проблема вызова в COM Interop - PullRequest
       22

Проблема вызова в COM Interop

0 голосов
/ 24 августа 2011

У нас есть .dll, которая была запрограммирована в VB6 и доступна через COM-взаимодействие .dll в нашем проекте.

Мы получаем эту ошибку, когда пытаемся создать экземпляр в нашем проекте

Получение фабрики класса COM для компонента с CLSID {D4F5C067-EF0C-4F8D-AEC7-85CA67EE68C6} не удалось из-за следующих ошибка: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Теперь эта же версия этого Interop .dll является ссылкой во многих других наших проектах, и отлично работает, также отлично работает, когда мы обращаемся к ней через Microsoft Excel (так как это COM).

Кроме того, самая важная находка заключается в том, что это не работает на машинах с Windows XP, только на машинах с Windows 7.

Кто-нибудь знает, что это может быть? Или как бы я начал искать решение?

После дальнейших исследований это все еще не работает, но я могу подтвердить, что мы оба нацелены на компьютер x86, и что regsvr32 <dll> не работает.

Спасибо.

1 Ответ

0 голосов
/ 24 августа 2011

Когда вы говорите, что regsvr32 не работает, вы получаете сообщение об ошибке?

Ваша машина Win7 64-битная?Если да, существует две версии файла Regsv32.exe:

  • 64-разрядная версия -% systemroot% \ System32 \ regsvr32.exe
  • 32-разрядная версия -% systemroot% \ SysWoW64 \ regsvr32.exe

Какой из них вы используете?

...