Проблемы с добавлением ссылки на компонент COM в проект VB.NET

У меня есть сторонняя COM-библиотека, которую я пытаюсь добавить в проект vb.net (2008 express). Я поместил dll в C: \ WINDOWS \ system32 \ и зарегистрировал ее с помощью regsvr32 vxncom.dll. Когда я перехожу в проекты> добавляю ссылку и перехожу на вкладку COM, он отображается в списке доступных компонентов / библиотек. Но когда я выбираю библиотеку и нажимаю ОК, Visual Studio жалуется: «Не удалось добавить ссылку на 'vxncom 4.0 Library'. Не удалось зарегистрировать библиотеку типов ActiveX 'C: \ WINDOWS \ system32 \ vxncom.dll'».

Проект, в котором я это делаю, - это пример, предоставленный людьми, которые распространяют эту dll. Компонент также не удается добавить, когда я запускаю новый (пустой) проект vb.net.

ОБНОВЛЕНИЕ 1:

Я запустил dependency walker для рассматриваемой DLL, и вот что я получил в журнале ошибок:

Ошибка: по крайней мере один модуль имеет неразрешенный импорт из-за отсутствия функции экспорта в неявно зависимом модуле.

Рассматриваемый модуль кажется libeay32.dll, но он уже существует в C: \ WINDOWS \ system32.

ОБНОВЛЕНИЕ 2:

Я зашел в сайт openssl, загрузил и использовал их установщик для обновления libeay32.dll. Я снова запустил dependency walker на vxncom.dll, и ошибок не было. Вернулся в визуальную студию, но все еще не хотел добавлять ссылку. Точно такая же ошибка, как и раньше.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
8 739
3

Ответы 3

Возможно, DLL, которую VB пытается зарегистрировать, зависит от другой DLL, которой нет. Вы можете подтвердить это (или исключить это) с помощью бесплатного инструмента Dependency Walker от http://www.dependencywalker.com/

ОТВЕТ НА ОБНОВЛЕНИЕ 1: Похоже, есть несоответствие между версией libeay32.dll, установленной в вашей системе, и версией, которую ожидает ваш компонент. Зависит от того, что ваш компонент ищет функцию, которой нет. Я бы проверил номер версии libeay32, а затем связался бы с поставщиком и спросил, какие версии они поддерживают.

Я запустил dependency walker для рассматриваемой DLL, и вот что я получил в журнале ошибок: Ошибка: по крайней мере один модуль имеет неразрешенный импорт из-за отсутствия функции экспорта в неявно зависимом модуле. Рассматриваемый модуль кажется libeay32.dll, но он уже существует в C: \ WINDOWS \ sy ...

symbollocks 24.09.2008 23:12

Просто подумайте - вы можете получить более подробное сообщение об ошибке, если создадите собственную PIA с помощью tlbimp.exe, вместо того, чтобы полагаться на IDE, которая сделает это за вас.

Предполагая, что вы не исправили это или перешли к альтернативам; и, следуя ответу jeffm, является ли libeay32.dll правильно зарегистрированным в операционной системе? Повторная установка / восстановление обычно решает этот тип проблемы (я часто вижу это в MS Office и MapPoint, где COM-объекты иногда отменяют регистрацию по той или иной причине).

Другие вопросы по теме