Под «капотом» моего ПК, в глубинах каталога Windows десятки DLL-файлов яростно преследовали друг друга, закладывая смертельные виражи и врезаясь в мой жесткий диск. После каждого столкновения система содрогалась и отказывалась работать. А я в результате пялился на прелестный нежно-голубой экран с мрачным сообщением Windows об ошибке.

Бьюсь об заклад, вы сталкивались с подобной проблемой. Внезапный аварийный отказ — верный знак того, что под капотом компьютера не все ладно. Почти всегда в этом виноваты неправильные DLL-файлы. Однако не волнуйтесь. Я помогу вам выбраться из DLL-пробки.

Пофайловое испытание

Вначале немного ликбеза. Динамически загружаемые библиотеки, известные также как DLL (dynamic link library), — это небольшие программы, используемые различными приложениями Windows. Одни из них нужны лишь каким-то отдельным приложениям и редко вызывают проблемы. Другие же — с которыми обычно и бывают связаны всякие неприятности — являются частью самой ОС Windows, и они нужны для работы многих разных программ. Например, commdlg.dll — DLL «общего диалога» — обеспечивает другим программам возможность создать диалоговые окна.

Так в чем же проблема? Да в том, что некоторые программы наводняют систему своими собственными версиями DLL-файлов, как правило устаревшими и весьма, скажем так, специфическими. При запуске программа подобного рода сама загружает свой старый DLL-файл, и он остается в памяти даже после выхода из приложения. B тот же день вы запускаете какую-нибудь другую программу, использующую этот же DLL-файл, но только чуть более новой версии, — и ба-бах! Сзади в новое приложение «врезается» старая DLL, возникает дорожная перебранка, и все выплескивается наружу.

Предполагается, что всякий раз при инсталляции какой-либо новой программы Windows 98 должна исключать подобные конфликты, сравнивая используемые версии DLL-файлов и выкидывая более старые. Неприятность, однако, заключается в том, что это не всегда происходит.

К счастью, от старых DLL-файлов можно избавиться самостоятельно. Дело это относительно безопасное, но все-таки для начала создайте резервную копию данных вашей системы.

Суть заключается в поиске на жестком диске всех DLL-файлов, нахождении и уничтожении дубликатов. Сделать это можно так: на Рабочем столе для вызова окна «Найти: Все файлы», нажмите клавишу . В списке «Где искать» выделите «Мой компьютер», а в поле «Имя» введите *.dll (удостоверьтесь, что поиск ведется на всем жестком диске, включая вложенные папки). Теперь выберите пункты «Вид?Упорядочить значки?По именам». Если ваш ПК подобен моему, то жесткий диск будет заполнен дублирующими DLL-файлами. Угнетающее зрелище, не правда ли?

Щелкните правой кнопкой мыши на каждом дубле, отметьте пункт «Свойства» и выделите закладку «Версия». Файл с более высоким номером версии должен располагаться в каталоге WindowsSystem. Если в папке с программой приложения находится аналогичный DLL-файл с меньшим номером, замените его расширение на .d_l. Тогда старая версия не будет загружаться, что вынудит программу искать требующуюся в папке System. (Вы должны увидеть много повторяющихся DLL-файлов в каталоге Windows Sysbckup. Там их трогать не надо.)

Последний шаг: перезагрузите систему и запустите программу, которая использовала старый DLL-файл. Если она работает, то все, видимо, в порядке, и можно повторить процедуру со следующей парой DLL-файлов. Если же возникли проблемы, то восстановите начальное название старого DLL-файла.

Стив Басс


Коротко о продукте

DLLChecker
Цена: 10 долл.