Notas sobre la compatibilidad en componentes ActiveX.
----------------------------------------------------------
Para no romper la compatibilidad de versiones:
- Al crear la librería (DLL) la primera vez: hacerlo con compatibilidad de proyecto.
- Hacer una copia de la DLL creada y renombrarla (esto no es obligatorio, pero recomendable),
por ejemplo con la extensión .dlc o .cmp (yo uso esta última)
- Al crear nuevas versiones, con nuevas propiedades y métodos,
hacerlo con compatibilidad binaria, apuntando a la copia creada con la nueva extensión.
De esta forma, los programas compilados anteriormente siguen funcionando con la nueva DLL.
- Copiar la nueva DLL con la extensión usada en la compatibilidad binaria.
La copia creada con la nueva extensión, será siempre la última versión distribuida de la DLL
- En muy importante que siempre que distribuyamos
una DLL, aunque se hayan hecho cambios mínimos que no rompan la
compatibilidad binaria con la anterior, hagamos una copia para usarla como
"base" de la compatibilidad binaria, (con la extensión .cmp).
De esta forma, siempre tendremos la DLL distribuida como base de
compatibilidad binaria.
Si no tenemos en cuenta este "pequeño" detalle, al distribuir la nueva DLL nos
encontraremos con el error de que "no puede crear el componente ActiveX" y por
tanto "romperemos" la compatibilidad binaria y tendremos que generar
nuevamente los ejecutables que utilicen nuestro componente ActiveX.
Todo esto es necesario para que se conserven las interfaces anteriores y las nuevas.
Los programas anteriores usarán la interface antigua y los nuevos la nueva.
Si se modifica demasiado la DLL al final el registro estará "abarrotado" de interfaces de
nuestra DLL... así que si se pretende hacer un cambio "brusco", lo recomendable es crear una
nueva DLL con una versión diferente, pero de esta forma los programas anteriores no funcionarán
con la nueva DLL... habría que volver a compilarlos.
|