La nueva computadora traía ya el Windows 7 sin embargo la instalación del Visual Basic 6.0 no fue tan simple como la vez anterior.
En esta ocación el problema ocurrió con dos archivos OCX que son MSCOMCTL y MSCOMCT2 que corresponden a:
- Controles comunes de Windows 6.0
- ImageCombo, ImageList, ListView, ProgressBar, Slider, StatusBar, TabStrip, Toolbar, TreeView
- Controles comunes de Windows 2 6.0
- Animation, DTPicker, FlatScrollBar, MonthView, UpDown
El mensaje de error dentro del IDE de Visual Basic 6.0 al intentar cargar cualquiera de los componentes es el siguiente:
La biblioteca de objetos no está registrada |
Esto aparece a pesar de haber instalado el Service Pack 6 de Visual Basic y de intentar desregistrar y registrar manualmente ambos componentes.
Luego de unos cuantos minutos me percaté de que el problema era ocasionado por las versiones. Para el archivo mscomctl.ocx las versiones eran las siguientes:
- Previo a instalar VB6 con Windows 7 actualizado (6.1.9834)
- Después de haber instalado VB6 (6.1.9782)
- Después de instalar el Service Pack 6 (6.0.8177)
- Realizar una copia de seguridad de la version de ambos archivos que se encontraban en el sistema operativo.
- Desregistrar ambos archivos con la utilidad RegSvr32
- Eliminar ambos archivos
- Instalar Visual Basic 6.0
- Instalar el Service Pack 6
- Desregistrar los archivos copiados por la instalación
- Copiar las versiones previamente respaldadas
- Registrar manualmente con la utilidad RegSvr32
- Desde la línea de comandos con privilegios elevados, en la carpeta del sistema, debemos registrar el archivo (msdatsrc.tlb) que corresponde a Microsoft Data Source Interfaces for ActiveX :
regtlib msdatsrc.tlb
Enlace al artículo anterior:
Instalar Visual Basic 6.0 en Windows 7
NOTA: parece ser que una de las tantas actualizaciones de Windows ha roto la compatibilidad entre las versiones de estos componentes. También hay que considerar que posterior al Service Pack 6 de Visual Basic hay una actualización de seguridad.