Ինչպես գրանցվել 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-bit, որոնք գտնվում են System32 թղթապանակում: Ես առաջարկում եմ օգտագործել regsvr32.exe- ի ամբողջական ճանապարհը յուրաքանչյուր ձեւով, եւ ոչ միայն ֆայլի անունը, ինչպես ցույց տվեցի օրինակներում:

Առաջին մեթոդը նկարագրվում է ինտերնետում ավելի հաճախ, քան մյուսները եւ բաղկացած է հետեւյալից.

  • Սեղմեք Windows + R- ի ստեղները կամ ընտրեք Run տարբերակը Windows 7 Start- ի ընտրացանկում (եթե, իհարկե, դուք միացրեք ցուցադրումը):
  • Մուտքագրեք regsvr32.exe path_to_file_dll
  • Սեղմեք OK կամ Enter:

Դրանից հետո, եթե ամեն ինչ լավ անցավ, դուք պետք է տեսնեք հաղորդագրություն, որ գրադարանը հաջողությամբ գրանցվել է: Սակայն, բարձր հավանականությամբ, կտեսնեք մեկ այլ հաղորդագրություն `մոդուլը բեռնված է, բայց մուտքի կետը DllRegisterServer չի հայտնաբերվել եւ արժե ստուգել, ​​որ ձեր DLL- ը ճիշտ է (ես գրել եմ այս մասին ավելի ուշ):

Երկրորդ ճանապարհը հրամանի տողն է որպես ադմինիստրատոր, եւ նույն հրամանն օգտագործեք նախորդ տարրից:

  • Գործարկեք հրամանի տողը, որպես Ադմինիստրատոր: Windows 8-ում դուք կարող եք սեղմել Win + X- ի բանալիները եւ ընտրեք ցանկալի ցանկի տարրը: Windows 7-ում դուք կարող եք գտնել հրամանի տողը Start մենյուում, սեղմեք աջը եւ ընտրեք «Run as administrator»:
  • Մուտքագրեք հրամանը regsvr32.exe path_to_library_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 ֆայլ է, որը պահանջում է այս գրադարանը, սկսվում է:

Այս իմաստով ես հուսով եմ, որ ինչ-որ բան ավելի պարզ է դարձել, քան դա: