Immer wiederSchutzverletzungen nach Installation von Shareware

Seit kurzer Zeit verursachen viele meiner 16-Bit-Anwendungen beim Schließen eine Schutzverletzung. Das Speichern offener Dateien geht zwar noch ordnungsgemäß vonstatten, doch ein Programmfenster schließt sich erst dann, wenn ich die Fehlermeldung bestätigt habe. Dazu muß ich sagen, daß ich häufig Sharewareprogramme ausprobiere und deshalb vermute, daß das Problem mit einer fehlerhaften Installation solch eines Programms zusammenhängt. Leider kann ich nicht mehr rekonstruieren, welches Programm für das Auftreten des Fehlers verantwortlich sein könnte. Ein Hinweis liefert möglicherweise die Fehlermeldung typelib.dll ist veraltet, die ich beim Versuch bekomme, die letzte WIN-Extra-CD zu installieren. Haben die beiden Fehler etwas miteinander zu tun? Was kann ich tun, um mein System wieder in Ordnung zu bringen?

Mit ihrer Vermutung bezüglich der Sharewareprogramme liegen Sie sicher richtig. Viele Sharewareprogramme kopieren eigene Programmbibliotheken (DLL-Dateien) in den Systemordner von Windows und überschreiben dabei ohne Rückfrage bereits vorhandene Dateien. Das ist zum Beispiel der Fall, wenn der Programmierer sicherstellen will, daß sein Programm auf allen Systemen läuft und deshalb die für die Programmierung benutzten Bibliotheksfunktionen als DLL-Dateien mitliefert. Dabei kann es zu Inkompatibilitäten kommen, die dann beim Aufruf einer Funktion aus einer geänderten Bibliothek zu einer Schutzverletzung führen.Ein besonders anfälliger Bereich sind die Bibliotheken, die den OLE-Mechanismus zur automatischen Kommunikation zwischen verschiedenen Anwendungen realisieren. Windows 95 enthält die OLE-Version 2.1, es kursieren allerdings noch Bibliotheken für ältere Versionen. Insbesondere 16-Bit-Programme basieren oft noch auf der Version 2.0, und wenn nun ein solches Programm eine oder mehrere Bibliotheksdateien durch eine ältere Version überschreibt, kann es zu Inkonsistenzen mit den restlichen OLE-Dateien kommen, was zu den beschriebenen Effekten führt. Die Datei TYPELIB.DLL ist beispielsweise eine derartige OLE-Datei, die bei Ihnen offensichtlich von einer älteren OLE-Version stammt (daher die Fehlermeldung des Setup-Programms).Für einen ersten Überblick sollten Sie im Explorer die Dateien nach Dateityp sortieren und sich die Datei TYPELIB.DLL und die OLE-Programmbiliotheken (OLE*.DLL, COMPOBJ.DLL) anschauen. Original-Windows-95-Dateien sind am Datum eindeutig zu erkennen (24.08.95, 09:50). Falls sich unter den OLE-Bibliotheken Dateien neueren Datums befinden, haben Sie bereits einen ersten Hinweis. Um die Versionsnummer einer Programmbibliothek festzustellen, wählen Sie aus dem Kontextmenü einer DLL-Datei den Befehl Eigenschaften und wechseln auf die Registerkarte Version. Hier können Sie die Versionsnummer der Datei und eine Kurzbeschreibung der Bibliothek ablesen, sowie bei Bedarf weitere Versionsinformationen abrufen. Überprüfen Sie, ob die entsprechenden Dateien alle die Versionsnummern ab 2.1 aufweisen (die Datei OLE2.DLL hat sogar schon die Versionsnummer 2.2). Die Dateien mit älteren Versionsnummern sollten Sie durch die Originalversionen ersetzen: Kopieren Sie diese von einer Sicherung oder der Windows-95-CD neu.Ihr Problem beim Schließen von Anwendungen wird vermutlich nicht von Inkonsistenzen bei den OLE-Bibliotheken verursacht, sondern von geänderten Bibliotheken im Bereich elementarer Windows-Funktionen. Für Standardelemente gibt es unter Windows verschiedene Bibliotheken, die von allen Programmen genutzt werden können, um zum Beispiel Fenster oder Programme zu schließen, Dialogelemente anzuzeigen oder abzufragen und so weiter. Entsprechende Funktionen für 16-Bit-Programme befinden sich in den Bibliotheken, deren Namen mit COM (für common) oder CTL (für control) beginnen, zum Beispiel COMMCTL.DLL oder CTL3D.DLL. Wahrscheinlich ist eine dieser Dateien bei der Installation eines (anderen?) Sharewareprogramms überschrieben worden.Hier ist die Versionsnumerierung leider nicht einheitlich, es empfiehlt sich daher ein Dateiabgleich mit den Originaldateien einer 16-Bit-Anwendung, bei der der Fehler auftritt. Ersetzen Sie entsprechende DLL-Dateien wieder durch die Originale, oder führen Sie eine Neuinstallation Ihres wichtigsten 16-Bit-Programms durch. Durch das Überschreiben der fehlerhaften Bibliotheken sind meist auch die Probleme der anderen Programme verschwunden. Um in Zukunft ähnliche Probleme frühzeitig zu erkennen, empfehle ich Ihnen, die entsprechenden Dateien nach Wiederherstellen eines konsistenten Systems schreibzuschützen. Versuche eines Installationsprogramms, solche Dateien zu überschreiben, führen dann zu einer Fehlermeldung oder zum Nichtfunktionieren des neuen Programms. Spätestens dann sollten Sie eine Sicherung des Windows-Verzeichnisses vornehmen. Falls dann nach der erneuten Installation (diesmal mit ungeschützten Dateien) Fehler auftreten, können Sie die Installation schnell wieder rückgängig machen. Unterstützung beim Aufspüren von Inkonsistenzen und Hilfe bei der Deinstallation bieten Ihnen auch Tools wie Uninstaller oder Cleansweep. Noch ein Tip: Wenn Sie das Windows-Zubehör Schnellansicht installiert haben, können Sie auch ausführliche Informationen über den Inhalt einer Programmbibliothek erhalten. Der Befehl Schnellansicht im Kontextmenü einer DLL-Datei zeigt Ihnen dann unter anderem die Namen und Einsprungstellen der enthaltenen Funktionen sowie die Namen von anderen verwendeten Bibliotheken an. Damit können Sie eventuell Querverbindungen zwischen DLL-Dateien aufspüren.01/97