2009-11-24 4 views
1

У меня возникает следующая проблема, может кто-то помочь, пожалуйста? Я использовал утилиту Tlbimp и преобразовал VB6 COM DLL в RCW DLL. Из моей Visual Studio 2008 я использовал «Добавить ссылку» и использовал эту DLL в классе C#. Все работает отлично на моей машине. Но если кто-то другой использует тот же проект на своей машине, то на этой машине они получают следующую ошибку: «Извлечение фабрики COM-класса для компонента с CLSID {x} не удалось из-за следующей ошибки 80040154». Я попытался найти этот идентификатор CLSID на этой машине, но не смог найти его в HKCR/CLSID.Получение COM Exception 80040154 на другой машине

У кого-нибудь есть ключ/идея, почему его проблема на разных машинах и что я могу попытаться решить эту проблему?

Спасибо.

ответ

4

Вам необходимо установить COM-объект на другой машине? Возвращаемая ошибка означает, что класс не зарегистрирован. tlbimp просто создает сборку оберток для сопоставления COM-интерфейса в .NET, он не конвертирует сам COM-объект и не несет его с собой.

Возьмите объект COM VB6 COM (или .OCX), поместите его на другой компьютер и запустите regsvr32 object.ocx, и теперь он должен работать.

+0

+1 Хотя если есть установка для VB6 COM DLL, вы должны просто запустить установку, а не использовать regsvr32. Могут потребоваться другие зависимости. – MarkJ

Смежные вопросы