Як зареєструвати DLL в Windows

Користувачі запитують про те, як зареєструвати dll файл в Windows 7 і 8. Зазвичай після того, як зіткнулися з помилками на зразок "Запуск програми неможливий, так як потрібна dll відсутня на комп'ютері". Про це і поговоримо.

Насправді, реєстрація бібліотеки в системі не така вже й складне завдання (покажу цілих три варіації одного способу) - по суті, необхідний лише один крок. Єдина обов'язкова вимога - наявність у вас прав адміністратора Windows.

Однак є деякі нюанси - наприклад, навіть успішна реєстрація DLL не обов'язково позбавляє вас від помилки "бібліотека відсутня на комп'ютері", а поява помилки RegSvr32 з повідомленням про те, що модуль не сумісний з версією Windows на цьому комп'ютері або точка входу DLLRegisterServer не знайдено, не говорить про те, що ви щось робите не так (про що це говорить роз'ясню в кінці статті).

Три способи реєстрації DLL в ОС

Описуючи подальші кроки, я виходжу з того, що ви знайшли, куди потрібно скопіювати вашу бібліотеку і DLL вже лежить в папку System32 або SysWOW64 (а можливо, десь ще, якщо їй там слід перебувати).

Примітка: нижче буде описано, як зареєструвати DLL бібліотеку за допомогою regsvr32.exe, однак звертаю вашу увагу на те, що якщо у вас 64-розрядна система, то у вас є два regsvr32.exe - один в папці C: \ Windows \ SysWOW64 , другий - C: \ Windows \ System32.І це різні файли, причому 64-біт знаходиться в папці System32. Рекомендую в кожному із способів використовувати повний шлях до regsvr32.exe, а не просто ім'я файлу, як у мене показано в прикладах.

Перший спосіб описується в Інтернеті частіше за інших і полягає в наступному:

  • Натисніть клавіші Windows + R або в меню Пуск Windows 7 виберіть пункт "Виконати" (якщо, звичайно, у вас включено його відображення).
  • Введіть regsvr32.exe путь_к_файлу_dll
  • Натисніть Ок або Enter.

Після цього, якщо все пройшло успішно ви повинні будете побачити повідомлення про те, що бібліотека була успішно зареєстрована. Але, з великою ймовірністю побачите інше повідомлення - Модуль завантажений, але точка входу DllRegisterServer не знайдено і варто перевірити, що ваша DLL є правильним файлом (про це, як я вже говорив, напишу пізніше).

Другий спосіб полягає в запуску командного рядка від імені адміністратора і введення все тієї ж команди з попереднього пункту.

  • Запустіть командний рядок від імені Адміністратора. У Windows 8 можна натиснути клавіші Win + X, а потім вибрати потрібний пункт меню. У Windows 7 ви можете знайти командний рядок в меню Пуск, клацнути по ній правою кнопкою миші і вибрати пункт "Запуск від імені адміністратора".
  • Введіть команду regsvr32.exe путь_к_бібліотеке_dll (Приклад ви можете бачити на скріншоті).

Знову ж таки, ймовірно, що вам не вдасться зареєструвати DLL в системі.

І останній спосіб, який також може стати в нагоді в деяких випадках:

  • Клацніть правою кнопкою миші по DLL, яку потрібно зареєструвати і виберіть пункт меню "Відкрити за допомогою".
  • Натисніть кнопку "Огляд" і знайдіть файл regsvr32.exe в папці Windows / System32 або Windows / SysWow64, відкрийте DLL за допомогою нього.

Суть всіх описаних способів зареєструвати DLL в системі одна і та ж, просто дещо різні способи запуску однієї і тієї ж команди - кому що зручніше. А тепер про те, чому у вас нічого не виходить.

Чому я не можу зареєструвати DLL

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

Чому це відбувається (далі буде і про те, як це виправити):

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

А тепер про те, як це виправити:

  • Якщо ви програміст і реєструєте свою DLL, спробуйте regasm.exe
  • Якщо ви користувач і у вас щось не запускається з повідомленням про те, що DLL відсутній на комп'ютері - пошукайте в Інтернеті, що це за файл, а не де його скачати. Зазвичай, знаючи це, ви можете завантажити офіційний установник, який встановить оригінальні бібліотеки і зареєструє їх в системі - наприклад, для всіх файлів з ім'ям, що починається з d3d досить поставити DirectX з офіційного сайту Microsoft, для msvc - одну з версій Visual Studio Redistributable. (А якщо не запускається якась гра з торрента, то загляньте-ка в звіти антивіруса, він міг видалити потрібні DLL, це часто буває з деякими модифікованими бібліотеками).
  • Зазвичай, замість реєстрації DLL спрацьовує розміщення файлу в одній папці з виконуваним файлом exe, який вимагає цю бібліотеку.

На цьому завершую, сподіваюся, щось стало ясніше, ніж було.