Добавить ссылку на библиотеку ActiveX VB6 в проект VS2008 - PullRequest
3 голосов
/ 10 сентября 2011

На работе у нас есть проект VB6 (ActiveX DLL), который мы должны иметь возможность добавить в качестве ссылки на другой проект VS2008 C #.

Разработчик говорит мне, что в прошлом они имелимы смогли это сделать, но теперь мы внесли изменения в библиотеку VB6 DLL и должны были перекомпилировать ее.

Таким образом, нам нужно обновить ссылку в проекте VS2008, но когда мы попытаемся добавить ссылку наVB6 DLL обратно (после удаления старой ссылки) на проект VS2008, мы получаем желтый "!"значок на добавленной ссылке, а затем, когда мы строим, VS2008 говорит, что ссылка не может быть найдена.

Я попробовал вкладки «Обзор» и «COM», где вы можете добавить ссылку, не повезло.

Нужен ли нам какой-нибудь TLB, чтобы добавить или что-то еще?

Спасибо.

Ответы [ 3 ]

1 голос
/ 10 сентября 2011

В командной строке необходимо выполнить следующие действия:

#CD to wherever the dll is located
regsrv32 /u foo.dll
regsrv32 foo.dll

Это приведет к отмене регистрации старого объекта com и регистрации нового.

0 голосов
/ 14 сентября 2011

Я использовал OLE / COM объект просмотра (включен в Windows SDK 6.0A), затем я увидел кучу записей COM в «Все объекты», т. Е. MyDLLName.className, и некоторые указывали на файл DLL, который больше не существует.Удалил все соответствующие записи COM в реестре Windows, которые указывали на удаленную DLL, и оставил все те, которые указывали на существующую DLL, и затем я мог успешно импортировать ее в мой проект VC #.

0 голосов
/ 10 сентября 2011

Он прав, вы можете сделать это из командной строки.

Помните, что ваша управляющая DLL-библиотека Active-X может быть 16-битной, поэтому используйте

    regsrv /u foo.dll
    regsrv foo.dll

из командной строки.Но 32-битная версия отлично работает для regsrv32!

...