Не удалось открыть проект 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:

  1. загрузить файл: http://www.ocxdump.com/ocxfiles/M/MSCOMCTL.OCX
  2. скопируйте его в локацию c:\windows\system32\
  3. Откройте командную строку и запустите это:

    cd c:\windows\system32
    regsvr32 MSCOMCTL.OCX
    

Чем попытаться снова запустить приложение.

У меня была такая же ошибка. Эти 2 вещи работали для меня:

  • Запустите Visual Studio 6, щелкнув правой кнопкой мыши Запуск от имени администратора

или же

  • Отключите подсказку UAC.

Надеюсь, поможет.

Скачать OCX по ссылке ниже

http://www.ocxme.com/ocx/download/3366/MSCOMCTl.OCX

После загрузки> Поместите его в любую папку> щелкните правой кнопкой мыши> Открыть> Открыть с помощью regsvr32 из system32.

Другие вопросы по тегам