#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