Не удалось получить фабрику класса COM для компонента с CLSID {} - PullRequest
1 голос
/ 06 февраля 2012

Я получаю эту ошибку при запуске приложения Windows Forms на C #:

Retrieving the COM class factory for component with CLSID {} failed 
due to the following error: 80040154 Class not registered (Exception 
from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Это появляется в IDE на 32-битной Windows XP.Компонент COM, о котором идет речь, является сторонним dll, который определенно зарегистрирован нормально на рассматриваемой машине.Мой проект нацелен на x86 хорошо.Кажется, я получаю сообщение об ошибке только при создании экземпляра определенного класса компонента, другие классы, которые я использую, работают нормально.

Я пробовал с компонентом, только что добавленным непосредственно в качестве ссылки, и также создал взаимодействиесборка и ссылки, но получить тот же результат.Отменили регистрацию и перерегистрацию компонента, используя regsvr32, но безрезультатно.

Если я ссылаюсь на тот же компонент в приложении VB6 и создаю экземпляр того же класса, он работает отлично!Я полностью сбит с толку, кто-нибудь может предложить какие-либо предложения, которые могут мне помочь?!

Спасибо.

1 Ответ

1 голос
/ 07 февраля 2012

Я получил это, изменив строку создания экземпляра с:

Component.MyObject test = new Component.MyObject();

до

Component.MyObject test;

Не уверен на данном этапе, почему это должно работать, но это так, чтобы я мог продолжать! Я все еще создаю экземпляры других классов, используемых с новым ключевым словом.

...