"Библиотека объектов не зарегистрирована" при попытке открыть проект VB6
Я пытаюсь открыть проект VB6 и получаю сообщение об ошибке "Библиотека объектов не зарегистрирована".
Машина 64 битная. Я попытался ниже, но он выдал ошибку, говоря, что "regtlib" не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл ".
cd C:\Windows\SysWOW64 regtlib msdatsrc.tlb
Папка "C:\Windows\Microsoft.NET\Framework64\v4.0.30319" содержит файл "regtlibv12". Я попытался "regtlibv12 msdatsrc.tlb" в этой папке, но это не помогло.
Я читал на одном из форумов, что деинсталляция Internet Explorer 10 является решением, я пробовал это, но не помогло.
Буду очень признателен за ваше предложение.
3 ответа
Я недавно получил новую Windows 7 64 и должен был установить VB6. Я также получил ошибку "Библиотека объектов не зарегистрирована" при попытке открыть проект VB6.
Я решил это следующим образом: cd C:\Windows\SysWOW64\ regtlib msdatsrc.tlb
Regtlb.exe используется для регистрации библиотек типов, в старых версиях Windows его обычно можно найти в
c:\windows\system32\RegTlb.exe
.Net Framework приносит новую версию:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regtlibv12.exe
Вы должны иметь возможность регистрировать любые файлы *.tlb с
regtlibv12.exe file.tlb
И отменить регистрацию с
regtlibv12.exe -u file.tlb
Вы должны убедиться, что оба файла доступны, при включении папок.Net используйте полный путь к вашей библиотеке типов.
И, конечно же, вам действительно нужно предоставить файл, иначе регистрация не будет работать.
На восстановленной 64-битной машине с Windows 7 я получал эту ошибку в приложении VB6, которое мы до сих пор поддерживаем.
Я несколько раз пытался перерегистрировать MSCOMCTL.OCX в SysWoW64, пытался изменить ссылку на проект с 2.0 на 2.1 и все другие предлагаемые решения. В конце я создал новый проект, используя MSCOMCTL.OCX (после перерегистрации), сохранил файл проекта и открыл его в блокноте. Я заметил, что в моем VBP на библиотеку общих элементов управления ссылались так:
Reference=*\G{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0#..\..\Windows\SysWOW64\MSCOMCTL.OCX#Microsoft Windows Common Controls 6.0 (SP6)
В рабочем проекте на него ссылались так:
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0; mscomctl.ocx
Переход на использование ссылки на объект затем исправил проблему. Обратите внимание, что я понятия не имею, почему это была ссылка на проект, а не ссылка на компонент, и этот проект был успешно скомпилирован до перекомпоновки машины.