Основні системні DLL "ки – Не вистачає DLL" ки … Що робити, Windows, Операційні системи, статті

Автор: Вадим СТАНКЕВИЧ


Думаю, для більшості наших читачів не є секретом те, що всередині операційна система Windows складається з великої кількості різноманітних компонентів, багато з яких реалізовані у вигляді DLL-бібліотек. Деякі з них більш важливі, деякі – менш. Про те, для чого потрібні деякі системні DLL-бібліотеки, я зараз і розповім.


Говорити будемо про 32-бітних системах – вони поки що все-таки більш поширені. Хочу відразу попередити, що ми з вами зараз не будемо розглядати, як саме влаштовані всередині системні DLL-бібліотеки і чим саме (кількісно і якісно) вони відрізняються від інших DLLек. Як правило, для просунутого користувача ці знання мають не дуже велику практичну цінність, і, крім того, для того, щоб докладно розповісти про все це, доведеться дуже сильно заглиблюватися в нетрі роботи операційної системи, а це означає, що, швидше за все, при такому розкладі місця в статті на самі DLLкі вже, на жаль і ах, зовсім не залишиться.


Системні бібліотеки лежать в системній папці – на те вони й системні. У старих версіях Windows (9x і ME) вони містилися в піддиректорії "System" папки з системою, в ОС лінійки Windows NT вони знаходяться в папці "System32". Краще без потреби в ці папки не залазити, але якщо ви зустрінете їх десь в іншому місці, то краще відразу їх видалити, тому що це, швидше за все, будуть якісь трояни. Навіть якщо це і копії системних бібліотек, все одно при їх видаленні з несистемних папок нічого поганого не станеться.


Для чого ж користувачеві знати призначення тієї чи іншої бібліотеки? У самому простому випадку – якщо система видасть Blue Screen of Death (BSOD), щоб можна було хоча б приблизно уявити, з чим саме він пов'язаний. Але насправді тут питання не тільки в суто практичному застосуванні таких знань – особисто я вважаю, що для того, щоб бути просунутим користувачем, просто необхідно знати подібні речі.


Втім, щось я знову заговорився. Це вже професійне:). Давайте вже, нарешті, перейдемо до наших DLLкам.



Hal.dll


Ця DLL – серце операційної системи. Розшифровується її назву як Hardware Abstraction Layer – рівень апаратної абстракції. Саме завдяки наявності такого рівня Windows має можливість роботи на різних апаратних платформах. Залежно від того, яка саме апаратна платформа наявна на вашому комп'ютері, замість hal.dll може бути присутнім один із таких файлів: Halapic.dll, Halmps.dll, Halacpi.dll, Halaacpi.dll, Halmacpi.dll.



Kernel32.dll


Наступна після рівня апаратної абстракції бібліотека зі складу ядра операційної системи. Про те, що без цієї бібліотеки робота ядра ОС неможлива, говорить вже сама її назва. Kernel32.dll відповідає за обробку пам'яті, операції введення-виведення і переривання – тобто, за всі основні дії операційної системи з додатками.



Ntdll.dll


Ця бібліотека – своєрідний міст між тими бібліотеками, які працюють в ядрі операційної системи, і бібліотеками, що працюють в режимі користувача. Ці два режими мають ряд суттєвих відмінностей, і без існування цієї DLLкі було б неможливо застосовувати багато старих програми в нових версіях Windows – багато в чому сумісність між різними версіями ОС тримається саме на ній.



Gdi32.dll


Важлива частина операційної системи Windows – це графічний інтерфейс користувача, який в найглибших своїх основах грунтується саме на цій DLL-бібліотеці. Gdi32.dll надає додаткам та іншим бібліотекам графічні примітиви, які використовуються для відтворення вікон і різних віконних елементів управління.



User32.dll, Comctl32.dll, Comdlg32.dll


Ці бібліотеки реалізують всередині себе різні готові елементи управління, які потім використовують для створення графічного інтерфейсу користувача застосування. Власне, в основному, саме ця трійка бібліотек відповідає за той зовнішній вигляд операційної системи, до якого ви звикли.



Advapi32.dll


Думаю, поняття системного реєстру знайоме кожному читачеві "Комп'ютерних вістей". Цілком природний той факт, що ОС Windows надає користувальницьким додаткам спеціальні функції доступу до реєстру, які якраз і винесені в Advapi32.dll.



Mpr.dll


Робота з мережею – теж прерогатива операційної системи. Власне, саме для роботи з мережею і потрібна mpr.dll. Взаємодія з іншими комп'ютерами в локальній мережі, підтримка роботи з мережевими пристроями, підтримка з'єднання – ось далеко не повний список того, що лягає на плечі цієї бібліотеки.



Msvcrt.dll


Цю бібліотеку можна теж віднести до розряду системних, бо без неї не запустяться багато стандартні програми зі складу Windows. Вона несе в собі ряд допоміжних функцій для роботи з пам'яттю, пристроями введення і виведення, математичними функціями. Ця DLL повинна бути добре знайома програмістам, які працювали з Visual C + +.


Звичайно, про всі системних DLLках в одній замітці не розкажеш, але ми завжди можемо продовжити розмову про них, якщо попросите.


Не вистачає DLLкі … Що робити?

Напевно кожен читач "Комп'ютерних вістей" хоч раз у житті стикався з неможливістю запустити ту чи іншу програму через відсутність необхідних динамічних бібліотек, в просторіччі званих DLLкамі. У більшості випадків проблема вирішувана, і досить просто.


Отже, припустимо, ви запустили програму, а вона вам у відповідь видала повідомлення а-ля "Додатку не вдалося запуститися, оскільки SuperPuperCool.dll не був знайдений. Повторна установка програми може виправити цю проблему ". Здавалося б, чого тут думати – система сама ж і пропонує не найкривавіший варіант вирішення цієї проблеми, потрібно ось тільки згадати, де ж лежав дистрибутив цієї програми. Ні, система-то, звичайно, тисячу разів права, якщо, звичайно, не вистачає не який-небудь із системних бібліотек.


Однак спосіб може не спрацювати – це раз. Багато розроблювачів елементарно забувають додати в дистрибутив своєї програми пару-трійку бібліотек, які написали не вони, але які, тим не менш, використовуються в їх програмному продукті. І тоді можна хоч сто раз заново програму – необхідних бібліотек від цього більше ну ніяк не стане. Другий мінус цього способу полягає в тому, що потрібен дистрибутив програми. Добре, якщо він є у вас під рукою, а якщо ні? Великі дистрибутиви і викачувати накладно, і процес установки більш-менш великих програм теж річ нешвидка.


Загалом-то, з усього цього випливає, що має сенс ще до переустановлення спробувати який-небудь альтернативний спосіб вирішення проблеми, а от вже якщо він не "прокотить", тоді і вирушати на пошуки дистрибутива потрібної програми.


Спосіб, який я зараз вам хочу запропонувати, до смішного банальна. Полягає він у тому, щоб пошукати потрібну вам DLL-бібліотеку в інтернеті. Так, звичайно, для цього потрібен доступ до Всесвітньої мережі, проте і для завантажування дистрибутивів програм він теж, скажімо так, не завадить. Однак, як я вже говорив, скачати окремий DLL-файл може виявитися набагато простіше, ніж цілий дистрибутив.


Шукати DLL-файли можна, звичайно, за допомогою Google, "Яндекса", "Рамблера" та інших звичайних пошуковиків. Але набагато простіше скористатися спеціалізованими архівами DLL-файлів, яких на безкрайніх просторах Інтернету з'явилося чимало. Особисто мені найбільше подобаються три наступні: www.dll-files.com, www.dll.ru і www.dlldll.ru. У Байнеті поки подібних сайтів не з'явилося, але, можливо, коли-небудь і вітчизняні користувачі на таке зважаться. Хоча зараз цілком достатньо і існуючих архівів.


Хоча всі сайти пропонують алфавітні списки різних DLL-файлів, набагато простіше буде ввести ім'я потрібної бібліотеки в рядок пошуку, яка є на головній сторінці. Але при виборі потрібної бібліотеки серед результатів пошуку потрібно бути уважним: назви деяких бібліотек можуть збігатися для різних програм, і треба стежити за тим, щоб викачувати DLLка саме для тієї програми, яка у вас не хоче запускатися. Що стосується версій бібліотек, то зовсім не обов'язково вона повинна збігатися з версією самої програми. Так що за інших рівних краще завантажувати найновішу – досить висока ймовірність того, що програма, потребує більш старої версії, буде працювати і з цією. Тільки якщо версія бібліотеки вказана в самому її імені (наприклад, msvbvm50.dll), не треба скачувати бібліотеку з іншим ім'ям і більш новою версією (Наприклад, msvbvm60.dll).


Якщо бібліотека не знайшлася на одному архіві, спробуйте пошукати на іншому, третьому, підключіть Google – загалом, підійдіть до її пошуку творчо. Ну а якщо знайти DLLку не вдасться або програма не захоче з нею працювати, – що ж, значить, доведеться переустановити цю програму.

 


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*