none
Не удалось получить фабрику класса COM для компонента с CLSID ... HRESULT: 0x80040154 REGDB_E_CLASSNOTREG RRS feed

  • Общие обсуждения

  • Проект запускается на 64-битной корпоративной Windows 8.1
    И это ключевой момент.
    В состав проекта включена dll "ActiveX Formula One 6.1" стороннего производителя, являющаяся 32-битным приложением.   
    Аккуратно регистрирую все dll, входящие в состав "ActiveX Formula One 6.1", создаю файл .def и командой lib генерирую библиотеку .tlb.
    После этого регистрирую dll "ActiveX Formula One 6.1" в своем проекте:
    MyProject->Add->Reference->Browse-Program Files (x86)->Tidestone-> "ActiveX Formula One 6.1"
    Создаются две обвертки:
    Interop.TTF160.dll
    Interop.StdType.dll
    Библиотеки доступны и работают, начиная с инструкции
    using TTF160
    все свойства и методы при кодировании доступны, то есть студия "видит" эту библиотеку.
    Запускаю проект на выполнение и при выполнении первого обращения
    TTF160.F1Book oF1Book = new TTF160.F1BookClass();
    выдается сообщение:
    Не удалось получить фабрику класса COM для компонента с CLSID ... HRESULT: 0x80040154 REGDB_E_CLASSNOTREG

    На машине разработчика для всех Application Poll, имеющихся в работе, установлено
    Диспетчер служб IIS->Пулы приложений->DefaultAppPoll->Дополнительные параметры->
    Разрешены 32-разрядные приложения: True

    Прошу подсказать, в чем ошибка и как запустить 32-битную dll "ActiveX Formula One 6.1" в 64-битном процессе.
    3 июля 2015 г. 13:45