Получение фабрики класса COM для компонента с CLSID - 80040154 - PullRequest
0 голосов
/ 24 января 2012

У меня есть сторонний компонент "ArchestrA.MxAccess.dll" (который построен на x86 с помощью corgflags) с двумя библиотеками типов и с ПК для разработки (32-разрядная версия XP SP2) с использованием Visual Studio 2008.

когда я создаю экземпляр класса в коде, он генерирует исключение COMException - 80040154.

Следующие решения, которые я пробовал:

  1. RegSVR32 DLL, но она не может быть зарегистрирована. как "Точка входа не найдена".

  2. библиотеки типов Regtlib, успешно

  3. восстановить DLL, успешно.

  4. Режим компилятора на x86.

  5. У CLSID, который является ошибкой, есть запись в реестре: HKCR \ CLSID \ и указывающая на эта DLL.

Пожалуйста, помогите. Я ищу решение с 3 дней.

Dev.


regasm с codebase делает запись с codebase и указывает на имя файла. Это успешно. также зарегистрировали dll, используя GACUtill, это успешно.

но грядет та же ошибка.

Мой ProcMon не может найти записи в

"HKCR\CLSID\{c30...}\"
<TreatAs>, <InprocServerX86>, <LocalServer32>, <APPID> 

и так же, как в

"HKCU\Software\Classes\CLSID\{C30..}\". 

Доступен только вход

1. {CLSID}\InProcServer\Default,Assembly,Class,codebase,RuntimeVersion

2. {CLSID}\InProcServer\2.0.0.0\Default,Assembly,Class,codebase,RuntimeVersion

runtimeVersion = V1.1.4322

это значит, что мне нужно установить 1.1 framework?

1 Ответ

0 голосов
/ 14 февраля 2012

Ответы техподдержки от WonderWare есть. Необходимо развернуть «Системную платформу».

, поэтому перед инициализацией COM используется обычная проверка подлинности (проверка развертывания System Platform и ее лицензии).

Регистрация в GACUtil полезна.COM иногда не регистрируется.

Еще раз спасибо.

...