Jinsi ya kujiandikisha DLL katika Windows

Watumiaji wanauliza kuhusu jinsi ya kujiandikisha faili ya dll katika Windows 7 na 8. Kawaida, baada ya kukutana na makosa kama "Programu haiwezi kuanza, kwa sababu dll muhimu haipo kwenye kompyuta." Kuhusu hili na kuzungumza.

Kwa kweli, kujiandikisha maktaba katika mfumo si kazi ngumu kama hiyo (nitaonyesha tofauti nyingi tatu za njia moja) - kwa kweli, hatua moja tu ni muhimu. Mahitaji pekee ni kwamba una haki za msimamizi wa Windows.

Hata hivyo, kuna vidokezo vingine - kwa mfano, hata usajili wa mafanikio wa DLL haukukuokoi kwenye hitilafu ya makosa ya maktaba, na kuonekana kwa hitilafu ya RegSvr32 kwa ujumbe ambao moduli haiambatana na toleo la Windows kwenye kompyuta hii au eneo la kuingia la DLLRegisterServer halikupatikana Haimaanishi kuwa unafanya kitu kibaya (nitaelezea hili mwishoni mwa makala).

Njia tatu za kujiandikisha DLL katika OS

Kuelezea hatua zifuatazo, nadhani kuwa umepata ambapo unahitaji nakala ya maktaba yako na DLL iko tayari kwenye folda ya System32 au SysWOW64 (na labda mahali pengine, ikiwa inapaswa kuwepo).

Kumbuka: hapa chini itaelezea jinsi ya kujiandikisha maktaba ya DLL kwa kutumia regsvr32.exe, hata hivyo, ninavutia ukweli kwamba ikiwa una mfumo wa 64-bit, basi una regsvr32.exe mbili - moja kwenye folda C: Windows SysWOW64 pili ni C: Windows System32. Na hizi ni faili tofauti, na 64-bit iko kwenye folda ya System32. Ninapendekeza kutumia njia kamili ya regsvr32.exe kwa kila njia, na si jina tu la faili, kama nimeonyesha katika mifano.

Njia ya kwanza inaelezwa kwenye mtandao mara nyingi zaidi kuliko wengine na ina yafuatayo:

  • Bonyeza funguo za Windows + R au chagua Chaguo cha Run katika orodha ya Windows 7 Mwanzo (ikiwa, bila shaka, umewawezesha maonyesho yake).
  • Ingiza regsvr32.exe path_to_file_dll
  • Bofya OK au Ingiza.

Baada ya hayo, ikiwa kila kitu kilikwenda vizuri, unapaswa kuona ujumbe ambao maktaba ilisajiliwa kwa ufanisi. Lakini, kwa uwezekano mkubwa utaona ujumbe mwingine - Moduli imefungwa, lakini hatua ya kuingia DllRegisterServer haipatikani na ni thamani ya kuchunguza kuwa DLL yako ni faili sahihi (nitaandika juu ya hili baadaye).

Njia ya pili ni kukimbia mstari wa amri kama msimamizi na kuingiza amri sawa kutoka kwa bidhaa ya awali.

  • Tumia haraka ya amri kama Msimamizi. Katika Windows 8, unaweza kushinikiza funguo za Win + X na kisha chagua kipengee cha orodha ya menu. Katika Windows 7, unaweza kupata mstari wa amri katika menyu ya Mwanzo, bonyeza-click juu yake na uchague "Run kama msimamizi".
  • Ingiza amri regsvr32.njia ya pekee ya_i_library_dll (unaweza kuona mfano katika skrini).

Tena, inawezekana kwamba huwezi kujiandikisha DLL katika mfumo.

Na njia ya mwisho, ambayo inaweza pia kuwa muhimu katika baadhi ya matukio:

  • Bofya haki kwenye DLL unayotaka kujiandikisha na kuchagua kipengee cha menyu "Fungua na."
  • Bonyeza "Vinjari" na upe faili regsvr32.exe kwenye folda ya Windows / System32 au Windows / SysWow64, kufungua DLL kwa kutumia.

Kiini cha njia zote zilizoelezwa za kujiandikisha DLL katika mfumo huo ni sawa, njia pekee za njia za kuendesha amri sawa - ambao ni rahisi zaidi. Na sasa kuhusu nini huwezi kufanya chochote.

Kwa nini hawezi kujiandikisha DLL

Kwa hiyo, huna faili yoyote ya DLL, kwa sababu ya kile unachoona hitilafu wakati wa kuanza mchezo au programu, umepakua faili hii kutoka kwenye mtandao na jaribu kusajili, lakini ama uhakika wa kuingia wa DllRegisterServer au moduli hailingani na toleo la sasa la Windows, na labda kitu kingine, yaani, usajili wa DLL haiwezekani.

Kwa nini hii hutokea (hapa, na jinsi ya kuifanya):

  • Sio faili zote za DLL zilizopangwa kusajiliwa. Ili iweze kusajiliwa kwa njia hii, lazima iwe na msaada wa DllRegisterServer kazi yenyewe. Wakati mwingine hitilafu pia husababishwa na ukweli kwamba maktaba tayari imesajiliwa.
  • Maeneo fulani ambayo hutoa kupakua DLL, kwa kweli, yana faili za dummy kwa jina unayotaka na hauwezi kusajiliwa, kwa sababu hali hii sio maktaba.

Na sasa jinsi ya kurekebisha:

  • Ikiwa wewe ni programu na kujiandikisha DLL yako, jaribu regasm.exe
  • Ikiwa wewe ni mtumiaji na huna kuanza kitu kwa ujumbe unaoonyesha kuwa DLL haipo kwenye kompyuta, tafuta mtandao kwa aina gani ya faili na sio wapi kupakua. Kujua hili, unaweza kawaida kupakua kipangilio rasmi ambacho kinaweka maktaba ya awali na kuandikisha katika mfumo - kwa mfano, kwa mafaili yote yenye jina kuanzia na d3d, tuweka DirectX kutoka kwenye tovuti rasmi ya Microsoft, kwa msvc, moja ya matoleo ya Visual Studio Redistributable. (Na kama mchezo hauanza kutoka torrent, kisha uangalie taarifa za antivirus, inaweza kuondoa DLL muhimu, mara nyingi hutokea na maktaba fulani yaliyobadilishwa).
  • Kwa kawaida, badala ya kujiandikisha DLL, eneo la faili katika folda moja kama faili ya kutekeleza ambayo inahitajika maktaba hii yanasababishwa.

Kwa mwisho huu, natumaini kitu kilikuwa wazi zaidi kuliko ilivyokuwa.