«Библиотека объектов не зарегистрирована» при попытке открыть проект VB6

#vb6 #registration #ocx #regtlib

#vb6 #Регистрация #ocx — окс #regtlib #ocx

Вопрос:

Я пытаюсь открыть проект VB6 и получаю сообщение об ошибке «Библиотека объектов не зарегистрирована».

Машина 64-разрядная. Я попробовал ниже, но он выдал сообщение об ошибке: «‘regtlib’ не распознается как внутренняя или внешняя команда, работоспособная программа или пакетный файл».

 cd C:WindowsSysWOW64
regtlib msdatsrc.tlb
  

'C:WindowsMicrosoft.NETFramework64v4.0.30319' в папке есть 'regtlibv12' файл. Я попробовал 'regtlibv12 msdatsrc.tlb' в этой папке, но это не помогло.

Я прочитал на одном из форумов, что деинсталляция Internet Explorer 10 — это решение, я попробовал это, но не помогло.

Я был бы очень признателен за ваше предложение.

Ответ №1:

The regtlb.exe используется для регистрации библиотек типов, в более старых версиях Windows его обычно можно найти в разделе

 c:windowssystem32RegTlb.exe
  

Платформы .Net приносят новую версию:

 C:WINDOWSMicrosoft.NETFrameworkv4.0.30319regtlibv12.exe
C:WINDOWSMicrosoft.NETFrameworkv2.0.50727regtlibv12.exe
  

Вы должны иметь возможность регистрировать любые файлы * .tlb с

 regtlibv12.exe file.tlb
  

И отменить регистрацию с помощью

 regtlibv12.exe -u file.tlb
  

Вам нужно будет убедиться, что оба файла доступны, при включении.Сетевые папки используют полный путь к вашей библиотеке типов.

И, конечно, вам действительно нужно, чтобы файл присутствовал, иначе регистрация не будет работать.

Комментарии:

1. Я пытался C:WINDOWSMicrosoft.NETFrameworkv4.0.30319regtlibv12.exe msdatsrc.tlb, но это не решило проблему. regtlibv12.exe отсутствует под C:WINDOWSMicrosoft.NETFrameworkv2.0.50727 . Нужно ли мне заботиться о версии v2.0.50727? У меня также есть версии v3.0 и v3.5 в папке Frameworks.

2. Итак, msdatsrc.tlb присутствует? К сожалению, вы не получаете никакой обратной связи от процесса. Поскольку зарегистрированная вами библиотека типов может быть 32-разрядной, ваша целевая платформа «Любой процессор», сообщение об ошибке Cannot find wrapper assembly for type library "MSDATASRC" может указывать на то, что вы пытаетесь выполнить сборку для 64-разрядной версии, но ваша сборка этого не позволяет.

3. Нет, msdatsrc.tlb отсутствует в обеих папках. При открытии проекта VB6 я получаю сообщение об ошибке «Библиотека объектов не зарегистрирована». И я прочитал, что могу выполнить «cd C:WindowsSysWOW64 regtlib msdatsrc.tlb». Я не уверен, является ли это способом решения проблемы.. Но если вы знаете какое-либо другое решение для устранения проблемы «Библиотека объектов не зарегистрирована», тогда это было бы здорово.

Ответ №2:

На восстановленном 64-разрядном компьютере с Windows 7 я получал эту ошибку в приложении VB6, которое мы все еще поддерживаем.

Я несколько раз пробовал перерегистрацию MSCOMCTL.OCX в SysWOW64, пытался изменить ссылку на проект с 2.0 на 2.1 и все другие предлагаемые решения. В итоге я создал новый проект, используя MSCOMCTL.OCX (после повторной регистрации), сохранил файл проекта и открыл его в блокноте. Я заметил, что, хотя в моем VBP на библиотеку common controls ссылались следующим образом:

 Reference=*G{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0#....WindowsSysWOW64MSCOMCTL.OCX#Microsoft Windows Common Controls 6.0 (SP6)
  

В рабочем проекте на него ссылались следующим образом:

 Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0; mscomctl.ocx
  

Изменение на использование ссылки на объект устранило проблему. Обратите внимание, что я понятия не имею, почему это была ссылка на проект, а не ссылка на компонент, и этот проект был успешно скомпилирован до перестройки машины.

Ответ №3:

Недавно я получил новую Windows 7 64 и должен был установить VB6. Я также получил ошибку «Библиотека объектов не зарегистрирована», когда попытался открыть свой проект VB6.

Я решил это следующим образом: cd C:WindowsSysWOW64 regtlib msdatsrc.tlb