Resumen Problemas en la carga de comdlg32, comctl32 o comct232

Dead OCXs
By Barry Traver

ültimamente en el grupo de news comp.lang.basic.visual.misc, más de un usuario de Visual Basic 5 ha descrito el mismo problema : repentinamente y sin razón aparente el Visual Basic no carga los controles COMDLG32.OCX, COMCTL32.OCX o COMCT232.OCX. En vez de ello aparece el mensaje de error "'' no puede ser cargado" (aunque estos ficheros se encuentran en C:\WINDOWS\SYSTEM).

Yo mismo tuve ese problema que significó que no puede emplear dichos controles durante semanas.

He aquí un importante párrafo del artículo Q217017 de la Microsoft Knowledge Base, que puedes encontrar en http://support.microsoft.com/support/kb/articles/q217/0/17.asp, acerca del mensaje "'' no puede ser cargado" message:

      Este error ocurre cuando instalas una nueva versión de un control Activex, lo desinstalas y luego vuelves a instalar la antigua versión del mismo control. La clave en el registro para la nueva versión del ActiveX permanece y el Visual Basic 5 intenta usar dicha clave.

Esto puede ocurrir fácilmente si instalas un programa shareware y luego los desintalas. Aunque la versión anterior del ActiveX es restaurada, el registro de Windows todavía apunta a la última versión del OCX y a partir de entonces Visual Basic es incapaz de cargarlo.

Para solucionar este problema la Knowledge Base recomienda el uso de RegClean (puedes encontrarlo en la Zona de descarga de este web), teniendo en cuenta que "RegClean sólo será efectivo si el Comctl32.ocx es borrado del sistema antes de ejecutar RegClean." (Aunque no lo menciona el artículo parece que comdlg32.ocx y comct232.ocx deben ser también borrados antes de ejecutar RegClean.)

Para más información sobre el uso de RegClean puedes ver el artículo Q147769 de la Knowledge Base article, "RegClean 4.1a Description and General Issues" que puedes encontrar en http://support.microsoft.com/support/kb/articles/Q147/7/69.asp. La utilidad RegClean puede ser descargada del web de Microsoft en http://support.microsoft.com/download/support/mslfiles/RegClean.exe.

Vamos a ver los pasos que seguí para resolver el problema :

   1.Descargué el RegClean del web de Microsoft.
   2.Mandé los tres ficheros com*32.ocx a la papelera.
   3.Descomprimí y ejecuté el RegClean para reparar el registro.
   4.Restauré los tres ficheros com*32.ocx de la papelera.
   5.Usé Regsvr32.exe para registrar los ficheros.
   6.Probé para confirma que todo funcionaba de nuevo.
   7.Reinstalé el Service Pack 3 de Visual Basic 5 (una buena idea después de que uses RegClean).

 Ted Fattaleh ha tenido el mismo problema y ha dado más detalles :

El error es más común cuando instalas Visual Basic 5 en un ordenador que tenga un programa VB5 con OCXs ya instalados.

Busca en el registro Comdlg32 o Richtx32, etc. sin la extensión y borra la clave completa en la que lo encuentres y sigue buscando hasta que no haya más.
Hecho esto, usa la API para registrarlos, funciona mucho mejor que el Regsvr32.exe. Si usas el Regsvr32.exe hazlo desde una ventana MS-DOS en vez de desde Inicio/Ejecutar.

Con el Comctl32.ocx es un poco distintoi porque necesitas reiniciar el ordenador después de borrar sus entradas en el registro.

 [Note: Regclean is supposed to handle things like this.

EXTRACTADO DE http://www.vb-helper.com/tips.htm



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com