Error en proyecto VB...{OCX}

Respuesta de
a
Usuario
Hola, manejo en un form un controlcito ocx de mi autoría (sencillo)... cuando le hago cambios y lo registro, vuelvo a abrir el proyecto que lo contiene me sale un mensaje de error "la instrucción en "0x00589e40" hace referencia a la memoria en "0x6576619c". la memoria no se puede "read" ... no se porque sucede...

Ayuda urgente
Experto
Hola, si te fijas en el texto del fichro vbp y de los frm que usan el ocx podrás encontrar líneas de este tipo:

Object={813FEDC9-2CEC-4F58-85B6-752EB65D1391}#7.0#0; TuControl.ocx

El número 7.0 especifica el número de interface de la ocx. Cuando tu creaste el proyecto VB quedó guardado en cada fichero del proyecto la interface que había registrada en ese momento.

Si modificas el ocx y lo registras, se le asigna un nuevo número de interface (8.0), pero el proyecto y los formularios siguen apuntando al número anterior (7.0).

Para saber cual es el nuevo número de interface asignado tras modificar el ocx, tendrás que hacer lo siguiente:
- En el proyecto con el que creas el ocx, Proyecto -> Propiedades de TuControl... -> Componente -> Archivos de Servidor Remoto (marcar).
- Cada vez que compiles el ocx se creará un fichero llamado TuControl.VBR, en el que encontrarás una línea similar a:
HKEY_CLASSES_ROOT\Typelib\{813FEDC9-2CEC-4F58-85B6-752EB65D1391}\8.0 = TuControl
- El nuevo número de interface el 8.0. Modifica esto en cada formulario del proyecto en el que utilices el ocx (con el proyecto cerrado, obviamente)

Te aconsejo que antes de registrar el ocx nuevo, desregistres el ocx antiguo, sobre todo si lo vas a situar en el mismo directorio.

Saludos.