Pregunta

He estado tratando de cargar un archivo OCX en uno de mis proyectos de VB6 para la mayor parte de la jornada de hoy. He intentado comprobar la inscripción en el registro COM lo mejor que saben, y han intentado varias veces usando REGSVR32 en el archivo en vano. Todo me siguen dando de VB6 cuando intento cargar el componente (a cargo del 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?

¿Fue útil?

Solución

Esto puede ser un problema de dependencias - algún otro componente que necesita el OCX no está presente. Dependency Walker encontrará las dependencias estáticas.

Otros consejos

Sólo un par de consejos para ayudar a aislar el problema ....

Mire el control con Oleview

Examinar el nombre: si se trata de una de las palabras reservadas como 'Menú', VB6 fallará para cargarlo. (Aunque VB6 estará feliz de permitirle crear (y uso) uno con un mal nombre hasta que se guarda y se vuelve a cargar)

Examinar la interfaz: tampoco describe la funcionalidad? Es posible que tenga un OCX dañado o sin licencia.

intento de cargar con el ActiveX Control Test Container ... Si puede, el problema es con VB6 y no el OCX.

Hemos arreglado error similar recientemente. En nuestro caso, el error estaba en el archivo de proyecto de Visual Basic (.vbp). archivo de proyecto había sido editado fuera de máquina de construcción estandarizada y contenía referencias a los componentes OCX -. incluyendo caminos y versiones de los componentes específicos de estaciones de trabajo

Puede editar el archivo de proyecto en el editor de texto u obtener una versión de trabajo del control de versiones.

Anular el registro y registrar nuevamente trabajado para mí también.
Tenga en cuenta que es necesario registrar este componente usando la siguiente sintaxis:

regsvr32 /i:design olch2x8.ocx

Cuando usted dice que ha usado "REGSVR32 en el archivo en vano" ¿Quiere decir que se obtiene un nombre de archivo lograron mensaje, o un mensaje de error? Si se registra el archivo tiene éxito CMB es probable razón sobre el OCX siendo sin licencia.

Licencia a un lado, hay un par de otros puntos de disparo con VB6. Especialmente si el OCX fue desarrollado en Visual Basic 6.

Si es así, el 'oficialmente' sistema de la versión registrada puede entrar en conflicto con el OCX específica que esté utilizando. En otras palabras, tanto de ellos podrían tener el mismo nombre propio (o classid), pero el que está intentando utilizar no puede implementar toda la funcionalidad descrita en el sistema registrado uno (es decir, tiene una versión menos evolucionada). Esto surge cuando el autor desea mantener la compatibilidad binaria al tiempo que mejora la funcionalidad de un control. Mientras las interfaces públicas siguen siendo compatibles, VB no volver a calcular el classid.

Puede solucionar este problema mediante la anulación del registro por la fuerza el control específico (en realidad anular el registro de todas las instancias del control). (Regsvr32 / u control.ocx) A continuación, volver a registrar la persona que va a utilizar. Asegúrese de que no hay instancia en ejecución de VB6 existe cuando se hace esto o los resultados podrían no funcionar. (Consulte su lista de tareas)

Espero que ayude ...

El control puede ser dependiente de otra DLL o OCX que puede faltar o no registrada y esto podría manifestarse como la presentación de informes VB que el control que está intentando utilizar no se encuentra. Sin embargo, no estoy seguro de cómo le gustaría identificar las dependencias. Por lo que yo sé, la dependencia Walker identifica dependencias estáticas; No estoy seguro de si se puede identificar dependencias de COM.

Un registro el OCX volver a registrar el OCX después se cargó de nuevo el proyecto en Visual Basic 6, que trabajó para mí.

Gracias a todos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top