Карыстальнікі пытаюцца пра тое, як зарэгістраваць 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, які патрабуе гэтую бібліятэку.
На гэтым завяршаю, спадзяюся, што-то стала больш ясна, чым было.