Al final de la segunda parte de este tutorial, nos encontramos con un pequeño problema, pero para ser honesto, en realidad es un gran problema. Si tenemos tiempo, valdría la pena estudiar este tema.
¿Recuerdas cómo nos encontramos con ese problema? En ese momento, primero compilamos ActiveXDLL y luego compilamos el programa de prueba que usaba la DLL. A continuación, volvemos a compilar la DLL, asumiendo que es necesario modificar el contenido de la DLL. Sin embargo, cuando vuelvo a ejecutar el programa de prueba, ¡se produce un error!
Sí, ciertamente ese no puede ser el caso.
Porque la experiencia nos dice que esto es un tema de compatibilidad. Entonces, se puede manejar así:
Inicie Visual Basic y abra el proyecto Northwind;
Seleccione el menú "PRoject"->"NorthwindProperties";
Haga clic en la pestaña "Componente";
Al explorar el contenido de la página "VersionCompatibility", puede encontrar tres opciones. Déjame explicarte ahora:
NoCompatibility: cada vez que compila, el componente COM del usuario se marca con una nueva etiqueta, lo que significa que el programa solo puede usar la etiqueta antigua (versión anterior) de la DLL.
ProjectCompatibility: los componentes COM del usuario no siempre se marcan con una nueva etiqueta cada vez que se compilan. Si es así, cualquier aplicación actualmente utilizada fallará. De hecho, esto sólo sucederá si el proyecto actual es significativamente diferente del proyecto DLL compilado.
BinaryCompatibility: cada vez que se compila, la aplicación siempre intenta guardar la etiqueta DLL previamente compilada, asegurando así que la aplicación utilizada no tendrá una pantalla azul de muerte. Sin embargo, si la DLL actual que se va a compilar es demasiado diferente de la DLL compilada anteriormente, se marcará una nueva etiqueta.
Probemos el argumento anterior:
Abra el programa de prueba de la parte anterior de este tutorial;
Vuelva a compilarlo;
Pruébelo y debería funcionar normalmente;
Abra el proyecto ActiveXDLL;
Establezca su propiedad en BinaryCompatibility;
Vuelva a compilar la DLL;
Pruebe el programa de prueba y debería funcionar bien.
Ok, parece que el problema se ha solucionado. Pero cuando se vuelve a compilar la DLL, la mayoría de los desarrolladores caerán en otra situación de incompatibilidad.
¿No hay una solución mejor? ¡Dejemos este tema de lado por ahora!
Puede visitar los siguientes sitios para obtener más contenido:
www.PylonOfTheMonth.co.uk.->