Я использовал вышеуказанную команду, но она не работала. Эта команда работала для меня:
python -m pip uninstall pip setuptools
Я решил эту проблему, заменив все экземпляры COMCTL32.OCX, которые поставлялись с VB5, на MSCOMCTL.OCX, которые поставлялись с VB6.
Статья базы знаний Microsoft 190952 есть инструкции для этого. Это была всего лишь операция глобального поиска и замены.
Сообщите об ошибке в Microsoft. Среда выполнения VB6 по-прежнему поддерживается в 64-битной Windows 7. COMCTL32.ocx не устанавливается с Windows 7, но явно указан как поддерживаемый в Windows 7.
Возможно, вы столкнулись с проблемой с защитой выполнения данных (DEP). Проверьте это, отключив DEP:
bcdedit.exe /set {current} nx AlwaysOff
Перезагрузитесь после ввода вышеуказанного в командной строке. Не забудьте снова включить его, так как это эквивалентно запуску Windows со спущенными штанами.
Изменить: приведенная выше команда работает в Vista. Я не пробовал в Windows 7.
Менее радикальная настройка DEP - войти в диалоговое окно производительности компьютеров (расширенная вкладка свойств системы) и добавить приложения exe в список исключений на вкладке DEP.
Кстати, вы уверены, что это не относится к serverfault.com. : P
Ваше решение в порядке. Но COMCTL32.OCX в любом случае должен нормально работать на Win64 (Vista или 7).
Небольшой совет:
При использовании MSCOMCTL.OCX вы не сможете применить к вашему listview или treeview стиль XP/Vista/7 и ваше приложение может выглядеть чужеродно. Manifest не будет иметь никакого эффекта на элементы управления MSCOMCTL.OCX.
Обходным решением может быть подкласс элементов управления MSCOMCTL.OCX, и поскольку они все еще содержат заголовок COMCTL32.DLL, вы можете манипулировать тем, как он рисует.
(Я бы опубликовал как комментарий, но я все еще не могу)