A la fin de la deuxième partie de ce tutoriel, nous rencontrons un petit problème, mais c'est en réalité un gros problème, pour être honnête. Si nous avons le temps, cette question mériterait d’être étudiée.
Vous souvenez-vous de la façon dont nous avons rencontré ce problème ? À cette époque, nous avons d’abord compilé ActiveXDLL, puis compilé le programme de test utilisant la DLL. Ensuite, nous recompilons la DLL, en supposant que le contenu de la DLL doit être modifié. Cependant, lorsque j'exécute à nouveau le programme de test, une erreur se produit !
Oui, cela ne peut certainement pas être le cas.
Car l'expérience nous dit qu'il s'agit d'un problème de compatibilité. Ainsi, cela peut être géré comme ceci :
Démarrez Visual Basic et ouvrez le projet Northwind ;
Sélectionnez le menu "PRoject" -> "NorthwindProperties" ;
Cliquez sur l'onglet "Composant" ;
En parcourant le contenu de la page « VersionCompatibility », vous pouvez trouver trois options. Laissez-moi vous expliquer maintenant :
NoCompatibility - Chaque fois que vous compilez, le composant COM utilisateur est marqué d'une nouvelle balise, ce qui signifie que le programme ne peut utiliser que l'ancienne balise (version précédente) de la DLL.
Compatibilité du projet : les composants COM utilisateur ne sont pas toujours marqués d’une nouvelle balise à chaque fois qu’ils sont compilés. Si tel est le cas, toutes les applications actuellement utilisées échoueront. En fait, cela ne se produira que si le projet actuel est sensiblement différent du projet DLL compilé.
Compatibilité binaire - Chaque fois qu'elle est compilée, l'application essaie toujours de sauvegarder la balise DLL précédemment compilée, garantissant ainsi que l'application utilisée n'aura pas d'écran bleu de la mort. Cependant, si la DLL actuelle à compiler est trop différente de la DLL compilée précédemment, une nouvelle balise sera marquée.
Testons l'argument ci-dessus :
Ouvrez le programme de test de la partie précédente de ce didacticiel ;
Recompilez-le ;
Faites-lui un test et il devrait fonctionner normalement ;
Ouvrez le projet ActiveXDLL ;
Définissez sa propriété sur BinaryCompatibility ;
Recompilez la DLL ;
Essayez le programme de test et cela devrait fonctionner correctement.
Ok, il semble que le problème ait été résolu. Mais lorsque la DLL est recompilée, la plupart des développeurs se retrouveront dans une autre situation d'incompatibilité.
N'y a-t-il pas une meilleure solution ? Laissons ce problème de côté pour le moment !
Vous pouvez visiter les sites suivants pour plus de contenu :
www.PylonOfTheMonth.co.uk.->