com vb6 registry ocx

com - Error VB6: no se puede cargar el archivo.ocx



registry (8)

He intentado cargar un archivo OCX en uno de mis proyectos de VB6 la mayor parte del día de hoy. Intenté comprobar el registro COM en el registro lo mejor que sé cómo, y he intentado varias veces usar REGSVR32 en el archivo en vano. Todo lo que obtengo de VB6 cuando intento cargar el componente (en Proyecto -> Componentes) es ''FilePath / FileName.ocx'' no se pudo cargar. ¿Alguien más ha visto esto antes, y si es así, alguna idea de cómo solucionarlo?


Cuando dices que has usado "REGSVR32 en el archivo en vano", ¿quieres decir que recibes un mensaje con el nombre de archivo correcto o un mensaje de error? Si registrar el archivo tiene éxito, es probable que CMB tenga razón acerca de que ocx no tenga licencia.


Dejando a un lado las licencias, hay un par de otros puntos de viaje con vb6. Especialmente si el OCX fue desarrollado en VB6.

Si es así, la versión registrada del sistema "oficialmente" puede entrar en conflicto con el ocx específico que está utilizando. En otras palabras, ambos pueden tener el mismo nombre propio (o classid) pero el que está intentando usar puede no implementar toda la funcionalidad descrita en el sistema registrado (es decir, tiene una versión menos evolucionada). Esto surge cuando el autor desea mantener la compatibilidad binaria mientras mejora la funcionalidad de un control. Mientras las interfaces públicas permanezcan compatibles, vb no volverá a calcular el classid.

Puede solucionar esto anulando por la fuerza el control específico (en realidad, anule el registro de todas las instancias del control). (regsvr32 / u control.ocx) Luego vuelva a registrar el que tiene la intención de usar. Asegúrese de que no exista una instancia en ejecución de VB6 al hacer esto o que los resultados no funcionen. (Verifique su lista de tareas)

Espero que ayude...


El control puede depender de otra DLL u OCX que pueda estar ausente o no registrada, y esto podría manifestarse como VB informando que falta el control que está tratando de usar. Sin embargo, no estoy seguro de cómo identificarías las dependencias. Por lo que sé, el cazador de dependencias identifica las dependencias estáticas; No estoy seguro si puede identificar dependencias COM.


Esto puede ser un problema de dependencia; algunos otros componentes necesarios para OCX no están presentes. Dependencia Walker encontrará cualquier dependencia estática.


Solo un par de consejos para ayudar a aislar el problema ...

Mira el control con OleView

Examine el nombre: si es una de las palabras reservadas como ''Menú'', vb6 no podrá cargarlo. (Aunque vb6 te dejará felizmente crear (y usar) uno con un nombre incorrecto hasta que se guarde y se vuelva a cargar)

Examine la interfaz: ¿describe la funcionalidad? Puede tener un ocx dañado o sin licencia.

Intente cargarlo con el contenedor de prueba de control ActiveX ... Si puede, el problema es con VB6 y no con el ocx.


Hemos corregido un error similar recientemente. En nuestro caso, el error fue en el archivo del proyecto Visual Basic (.vbp). El archivo de proyecto se había editado fuera de la máquina de compilación estandarizada y contenía referencias a los componentes de OCX, incluidas las rutas y versiones de componentes específicas de la estación de trabajo.

Puede editar el archivo del proyecto en el editor de texto u obtener una versión que funcione desde el control de la versión.


Desregistro el ocx vuelva a registrar el ocx y luego vuelva a cargar el proyecto en VB6, funcionó para mí.

Gracias a todos


Desregistrarse y registrarse nuevamente funcionó para mí también.
Tenga en cuenta que necesita registrar este componente usando esta sintaxis:

regsvr32 /i:design olch2x8.ocx