VB6 Общие элементы управления в Windows 10
Я недавно установил Windows 10 из Windows 7. Теперь я столкнулся с проблемой, когда Microsoft Common Controlls mscomctl не существует
Я зарегистрировал файл "MSCOMCTL.OCX" с помощью sysWow64/Regsvr32.exe
Но когда я перезагружаю проект, он все еще не может найти ссылку.
Я также зарегистрировал.ocx с System32. Это проблема Windows 10 или я что-то упустил?
3 ответа
Ответ состоял в том, что мне нужно было зайти в проект, щелкнуть projoect, а затем компоненты и отметить общие элементы управления Microsoft. Нажал "Применить" и перезапустил проект с сохранением.
Если бы у вас не было реестра, и не завершите его, он отключил бы его, и после того, как вы завершили регистрацию в файле.ocx, вам нужно будет снова включить его.
Наиболее вероятной причиной этой ошибки является то, что ваш проект ищет более новую версию MSCOMCTL.OCX, чем установлена в Visual Basic 6 (с пакетом обновления 6 для Visual Studio 6).
Вы можете проверить версию библиотеки типов, требуемую вашим проектом, открыв файл проекта.vbp в текстовом редакторе. Посмотрите на строку, как эта:
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.2#0; MSCOMCTL.OCX
2.2
в середине относится к требуемой версии typelib. Если вы повторно добавите ссылку на компонент, а затем сохраните проект, вы можете вернуться к файлу.VBP и посмотреть, какая версия typelib установлена на вашем компьютере. (Это, вероятно, будет версия 2.0).
Чтобы получить последнюю версию typelib (2.2):
- Установите Visual Studio 6 с пакетом обновления 6, если вы этого еще не сделали.
- Установите версию накопительного пакета обновления 6 (SP6) для Microsoft Visual Basic 6.0 от января 2016 года.
Это даст вам версию 6.1.98.46 файла MSCOMCTL.OCX.
Пожалуйста, запустите командную строку в режиме администратора и введите следующие команды
для 32-битной машины (регистрация)
cd C:\Windows\System32
regsvr32 mscomctl.ocx
regtlib msdatsrc.tlb
для 64-битной машины (регистрация)
cd C:\Windows\SysWOW64
regsvr32 mscomctl.ocx
regtlib msdatsrc.tlb