Am Ende des zweiten Teils dieses Tutorials stoßen wir auf ein kleines Problem, aber das ist, um ehrlich zu sein, tatsächlich ein großes Problem. Wenn wir Zeit haben, sollte es sich lohnen, dieses Thema zu studieren.
Erinnern Sie sich, wie wir auf dieses Problem gestoßen sind? Zu diesem Zeitpunkt haben wir zuerst die ActiveXDLL kompiliert und dann das Testprogramm, das die DLL verwendet. Als nächstes kompilieren wir die DLL neu, wobei wir davon ausgehen, dass der Inhalt der DLL geändert werden muss. Wenn ich das Testprogramm jedoch erneut ausführe, tritt ein Fehler auf!
Ja, das kann sicherlich nicht der Fall sein.
Denn die Erfahrung zeigt, dass es sich hierbei um ein Kompatibilitätsproblem handelt. Es kann also wie folgt gehandhabt werden:
Starten Sie Visual Basic und öffnen Sie das Northwind-Projekt.
Wählen Sie das Menü „Projekt“ -> „NorthwindProperties“;
Klicken Sie auf die Registerkarte „Komponente“.
Beim Durchsuchen des Seiteninhalts „VersionCompatibility“ finden Sie drei Optionen. Lassen Sie mich das jetzt erklären:
NoCompatibility – Bei jeder Kompilierung wird die Benutzer-COM-Komponente mit einem neuen Tag markiert, was bedeutet, dass das Programm nur das alte Tag (vorherige Version) der DLL verwenden kann.
Projektkompatibilität – Benutzer-COM-Komponenten werden nicht immer bei jeder Kompilierung mit einem neuen Tag markiert. Wenn dies der Fall ist, schlagen alle derzeit verwendeten Anwendungen fehl. Tatsächlich geschieht dies nur, wenn sich das aktuelle Projekt erheblich vom kompilierten DLL-Projekt unterscheidet.
Binärkompatibilität – Bei jeder Kompilierung versucht die Anwendung, das zuvor kompilierte DLL-Tag zu speichern, um sicherzustellen, dass die verwendete Anwendung keinen Bluescreen des Todes erhält. Wenn sich die aktuell zu kompilierende DLL jedoch zu stark von der zuvor kompilierten DLL unterscheidet, wird ein neues Tag markiert.
Testen wir das obige Argument:
Öffnen Sie das Testprogramm aus dem vorherigen Teil dieses Tutorials;
Kompilieren Sie es neu.
Machen Sie einen Testlauf und es sollte normal funktionieren;
Öffnen Sie das ActiveXDLL-Projekt;
Setzen Sie seine Eigenschaft auf BinaryCompatibility;
Kompilieren Sie die DLL neu.
Probieren Sie das Testprogramm aus und es sollte gut funktionieren.
Ok, es sieht so aus, als ob das Problem gelöst wurde. Wenn die DLL jedoch neu kompiliert wird, geraten die meisten Entwickler in eine weitere Inkompatibilitätssituation.
Gibt es keine bessere Lösung? Lassen wir dieses Problem erst einmal beiseite!
Weitere Inhalte finden Sie auf den folgenden Websites:
www.PylonOfTheMonth.co.uk.->