Не удалось открыть проект VB, не удалось загрузить ошибку "C:\windows\system32\mscomctl.ocx"
У меня проект VB был в состоянии работать без каких-либо проблем, но теперь, когда я открываю проект, я получаю сообщение об ошибке с mscomctl.ocx. Я перерегистрировал OCX, но по-прежнему не могу загрузить проект.
Как я могу исправить эту проблему?
8 ответов
У меня была эта проблема, когда я открывал проект в 64-битной среде Windows 7, он корректно работает на машине с Win XP. Я сделал очень простое изменение в файле проекта раньше, он говорит
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0; MSCOMCTL.OCX
Я изменился 2.1
в 2.0
потому что я видел это на многих форумах, и это работало как шарм. Обновленная ссылка в VBP
файл
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
У меня была похожая проблема, когда мой 32-битный ноутбук с Windows 7 вышел из строя, и компания заменила его на 64-битную машину... Сначала я попытался зарегистрировать.ocx с помощью regsvr32 - на 32-битной машине он время от времени выгружался... это не сработало на отремонтированном 64-битном компьютере...
Я попытался изменить настройки файла.vbp, как отмечалось в некоторых предыдущих ответах, но безуспешно... Я установил.vbp обратно на 2.0, а позже по другой проблеме я искал в реестре и решил поискать mscomctl.ocx и нашел 3 ключи - 2.0, 2.1 и 2.2... так как он не работал, я решил удалить ключи 2.1 и 2.2 и вуаля! элементы управления загружены без проблем. Очевидно, что.vbp и реестр должны совпадать.
Мне кажется, ваш проект потерял свою ссылку на ocx (хотя он все еще пытается использовать некоторые элементы управления)
нажмите на "компоненты" в меню "проект" в идеале
в списке убедитесь, что установлен флажок "Microsoft Windows Common Controls 6.0 (SP6)"... если он уже есть, попробуйте удалить его, закрыть (и сохранить) проект, открыть проект и снова включить его
У меня такая же проблема. Ответ user1272267 сработал (спасибо), но меня беспокоило, что я не понимаю почему, я также не был уверен, смогу ли я закончить работу над проектом для моих коллег, для которых он работал нормально.
Поэтому я немного покопался и обнаружил, что в реестре есть ключ; reg hkcr\typelib{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.0 (обратите внимание на 2.0)
Я изменил 2,0 на 2,1 и эй Presto, все работало нормально. Я также проверил библиотеку DLL, и оказалось, что моя копия была старше, чем копия моих коллег. Я думаю, что это может быть потому, что когда я установил пакет обновления 6, я сохранил некоторые оригинальные файлы, когда их спросили, так как файлы для замены были для американского английского, и у меня была версия для Великобритании, но я не уверен на 100% в этом
Windows 7 64 бит; только что установил VS6 и VS6 SP6 (с трудом), но мой проект из Win XP выдал ошибку "MSCOMCTL.OCX не удалось загрузить".
Я обнаружил, что ответ Натана Хэдли дал мне подсказку и позволил мне открыть проект.... Мой файл userinterface.vbp для проекта (скопированный из Win XP) имел #2.2 рядом со ссылкой на MSCOMCTL.OCX, но мой идентификатор класса реестра имел только 2.1. Поэтому я изменил свою запись userinterface.vbp на 2.1, и проект открылся нормально.
Однако на следующий день я снова запустил накопительное обновление VB6 SP6 VB60SP6-KB2708437-x86-ENU (возможно, неправильно установлен первый раз), и теперь у меня есть версия 2.2 в реестре. Поэтому я изменил свой файл userInterface.vbp обратно, чтобы ссылка OCX снова получила #2.2, и теперь проект по-прежнему открывается правильно, и все работает нормально.
Вы также можете открыть файл проекта (файл.vbp) в блокноте, где вы увидите что-то вроде следующего:
Type=Exe
Form=frmComFX.frm
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\SysWOW64\stdole2.tlb#OLE Automation
Object={648A5603-2C6E-101B-82B6-000000000014}#1.1#0; MSCOMM32.OCX
Object={5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0; MSFLXGRD.OCX
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
Form=frmSetup.frm
Module=modFX; modFX.bas
IconForm="frmComFX"
Startup="frmComFX"
HelpFile=""
Title="ComFX"
Command32=""
Name="comFX"
строки, начинающиеся с 'object-', содержат раздел реестра, в котором зарегистрирован ocx... теперь вы можете открыть regedit (start - execute - regedit) и найти этот ключ... будьте осторожны с тем, что вы делаете в regedit, Вы могли бы испортить Вашу визуальную основную установку или даже Ваши полные окна:)
Конечно, вы также можете удалить Visual Basic и переустановить его, чтобы получить регистрацию обратно
Попробуйте перерегистрацию MSCOMCTL.OCX
:
- загрузить файл: http://www.ocxdump.com/ocxfiles/M/MSCOMCTL.OCX
- скопируйте его в локацию
c:\windows\system32\
Откройте командную строку и запустите это:
cd c:\windows\system32 regsvr32 MSCOMCTL.OCX
Чем попытаться снова запустить приложение.
У меня была такая же ошибка. Эти 2 вещи работали для меня:
- Запустите Visual Studio 6, щелкнув правой кнопкой мыши Запуск от имени администратора
или же
- Отключите подсказку UAC.
Надеюсь, поможет.
Скачать OCX по ссылке ниже
http://www.ocxme.com/ocx/download/3366/MSCOMCTl.OCX
После загрузки> Поместите его в любую папку> щелкните правой кнопкой мыши> Открыть> Открыть с помощью regsvr32 из system32.