Bukas
Isara

Hindi mairehistro ang module. Windows Registers file na may *.dll at *.ocx extension. Maraming mga paraan upang magrehistro ng isang dynamic na library

2. Pagkatapos mong makopya ang library, pindutin ang kumbinasyong WIN+R at i-paste sa window na bubukas:

regsvr32<имя библиотеки>

Halimbawa regsvr32 mfc100

At pindutin ang Enter

Kung lumitaw ang error na ito,

pagkatapos ay subukang pindutin ang parehong kumbinasyon ng key at ipasok ang sumusunod:

%WINDIR%\SysWOW64\regsvr32<имя библиотеки>

Halimbawa %WINDIR%\SysWOW64\regsvr32 mfc100

Kung tama ang library, kung gayon ang pagpaparehistro ay magiging matagumpay at makikita mo ang sumusunod na mensahe

P.S. Kung kailangan mong magrehistro ng library na matatagpuan sa ibang direktoryo (hindi ang direktoryo ng system), dapat mong tukuyin ang buong landas patungo sa library.

Halimbawa regsvr32


1. Kopyahin ang na-download na library sa nais na direktoryo ng system. (ito ay alinman sa system32 o SysWOW64)*

* Aling direktoryo ang kokopyahin ng mga aklatan ay depende sa bit depth ng application. Kung hindi mo alam nang eksakto kung saang folder kokopyahin, kopyahin sa parehong J

2. I-download archive sa ibaba ng post, unzip, patakbuhin ang reg.bat file na may mga karapatan ng administrator, piliin ang bit depth na kailangan mo, pindutin ang Enter at ipasok ang pangalan ng library, na kinopya mo sa direktoryo ng system. Ang lahat ay dapat na maayos at makikita mo ang mensaheng ito.

Kung makakita ka ng ganoong mensahe

Pagkatapos ay pumili ng ibang laki ng bit at subukang magrehistro muli. Dapat maayos ang lahat.

P.S. Kung kailangan mong magrehistro ng isang library na matatagpuan sa ibang direktoryo (hindi ang direktoryo ng system), dapat mong tukuyin ang buong path sa library sa pangalan ng library.

Halimbawa C:\Program Files\1Cv77\BIN\V7PLUS.dll

Modelo ng mga multi-component na bagay ( C kalaban O bject M odel - COM) ay ang pangunahing paraan ng pakikipag-ugnayan sa pagitan ng mga programa ng anumang uri: mga aklatan, aplikasyon, software ng system, atbp. at tumutukoy sa isang karaniwang mekanismo kung saan ang isang piraso ng software (ang server) ay nagbibigay ng mga serbisyo nito sa isa pa (ang kliyente), na sinisiguro ng paggamit ng ilang mga protocol ng komunikasyon sa pagitan nila (sa pagitan ng kliyente at ng server). Ang server ay maaaring isang dynamic link library (DLL) na nilo-load habang tumatakbo ang application, o isang hiwalay na independiyenteng proseso na maaaring bahagi ng isang application o system program, o kahit isang proseso na tumatakbo sa ibang computer. Upang mahanap ang server na kailangan ng kliyente, ginagamit ang espesyal na impormasyon mula sa Windows registry, na nabuo kapag pagpaparehistro server sa system, kadalasan sa anyo ng isang dynamic na na-load na DLL library module. Kinakailangan ang pagpaparehistro dahil ang mga programa ay hindi gumagana sa mga DLL, OCX, ACX, EXE na mga file mismo, ngunit sa mga bagay na kumakatawan sa isang partikular na hanay ng mga interface ng programa. Ang mga sumusunod na registry key ay ginagamit upang magrehistro ng mga DLL:

HKLM\SOFTWARE\Classes\CLSID- kapag nagrerehistro ng mga bagay sa library ng COM para sa lahat ng mga gumagamit ng system;

HKCU\SOFTWARE\Classes\CLSID- kapag nagrerehistro ng mga bagay sa library ng COM para lamang sa kasalukuyang gumagamit;

HKLM\SOFTWARE\Wow6432Node\Classes\CLSID- para sa pagpaparehistro ng 32-bit DLL sa 64-bit Windows OS;

Kapag nagrerehistro, ang isang susi na may pangalan na katumbas ng pandaigdigang natatanging identifier ay nilikha sa tinukoy na seksyon ng pagpapatala GUID rehistradong bagay. Ang GUID, na may kaugnayan sa COM, ay isang identifier ng klase. Upang makilala ang mga identifier ng klase mula sa iba pang mga identifier, gumagamit sila ng registry subkey na tinatawag CLSID. Ang GUID ay isang 128-bit na hex na halaga na nakapaloob sa mga kulot na brace:

(23170F69-40C1-278A- 1000-000100020000

Kapag nagparehistro sa pagpapatala, ang isang subkey ay nilikha na may isang pangalan na naaayon sa GUID, na naglalaman ng impormasyon tungkol sa landas at pangalan ng maipapatupad na file, bersyon nito, oras ng pagpaparehistro, impormasyon tungkol sa developer, at iba pang mga parameter na tumutukoy sa mga partikular na katangian ng ang rehistradong bagay. Ang pagtanggal o pagkasira ng data ng pagpaparehistro ay nagiging sanhi ng hindi na gumagana ang nakarehistrong bahagi ng system o program ng application, kadalasang sinasamahan ng isang mensahe ng error sa paghahanap ng DLL at isang prompt na muling i-install ang problemang software. Sa halip na muling i-install, ito ay lubos na posible upang makakuha ng sa pamamagitan ng muling pagrehistro ng nasirang bagay gamit ang utility regsvr32.exe available sa lahat ng bersyon ng Windows family ng mga operating system.

Kagamitan regsvr32.exe ay isang karaniwang command line program para sa pagrerehistro at pag-unregister sa mga kontrol ng OLE, mga kontrol ng ActiveX, at mga DLL sa Windows Registry. Sa 64-bit na bersyon ng Windows, mayroong dalawang bersyon ng file regsv32.exe:

64-bit na bersyon sa catalog %systemroot%\System32(karaniwan ay C:\Windows\System32)

32-bit na bersyon sa catalog %systemroot%\SysWoW64(karaniwan ay C:\Windows\SysWoW64)

Ang utility ay nangangailangan ng mataas na mga pribilehiyo upang gumana, kaya ang command prompt window ay dapat buksan na may mga karapatan ng administrator ("Run as administrator").

Sa startup regsvr32.exe walang mga parameter ng command line, o kapag inilunsad na may mga maling parameter, may ipapakitang pahiwatig:

REGSVR32 na format ng command line:

Regsvr32 ] DLL file

/u- - tumatawag sa DllUnInstall, inaalis sa pagkakarehistro ang server

/i- tumatawag sa DllInstall, na nagpapasa dito ng isang opsyonal na command_string bilang isang parameter;

/n- ay hindi tumatawag sa DllRegisterServer; maaaring gamitin sa /I switch;

/s- mode na "tahimik"; ang mga kahon ng mensahe ay hindi ipinapakita;

Mga halimbawa ng paggamit regsvr32.exe:

regsvr32 /u "C:\Program Files\7-Zip\7-zip32.dll"- alisin sa pagkakarehistro ang tinukoy na DLL. Kung matagumpay ang pagkansela, ipapakita ang sumusunod na mensahe:

Upang sugpuin ang output ng mensahe, gamitin ang parameter /s:

regsvr32 /u /s "C:\Program Files\7-Zip\7-zip.dll"

Bilang resulta ng pagpapatupad ng command na ito, ang 7-Zip archiver item ay mawawala mula sa Windows Explorer right-click context menu. Upang maibalik ito, kailangan mong magrehistro ng 7-zip.dll gamit ang utos:

regsvr32 "C:\Program Files\7-Zip\7-zip.dll"

Hindi mo dapat kalimutan ang tungkol sa bit depth ng mga rehistradong bagay sa 64-bit na bersyon ng OS. Kung kinakailangan upang magrehistro ng isang 32-bit na bagay, dapat mong tahasang tukuyin ang landas para sa 32-bit na edisyon ng utility. regsvr32:

%SystemRoot%\syswow64\regsvr32.exe

O nang hindi gumagamit ng mga variable ng kapaligiran:

C:\Windows\System32\regsvr32.exe

Bilang isang karagdagang tool ng software para sa pamamahala ng pagpaparehistro ng mga COM object, napaka-maginhawang gamitin ang libreng utility mula sa Nirsoft RegDLLView.exe. Ang programa ay hindi nangangailangan ng pag-install sa system, ay maliit sa laki at nagbibigay-daan sa iyo upang:

Makatanggap ng isang maginhawang listahan ng lahat ng mga bagay na nakarehistro sa system.

Irehistro o alisin sa pagkakarehistro ang mga napiling bagay.

Gumawa ng reg file para magsagawa ng pag-unregister ng isa o higit pang mga DLL.

Irehistro o muling irehistro ang tinukoy na file.

Bilang karagdagan, posible na suriin ang mga digital na lagda ng mga maipapatupad na file ng mga nakarehistrong bagay, tingnan o baguhin ang kanilang mga pag-aari, at ilunsad din ang registry editor na may impormasyong ipinapakita para sa napiling GUID sa pamamagitan ng item ng menu ng konteksto na "Buksan sa Regedit", na tinawag gamit ang kanang pindutan ng mouse.

Ang pag-install ng isang laro o mabigat na application ay nagsasangkot ng awtomatikong pag-install at pagpaparehistro ng mga kinakailangang DLL sa Windows operating system. Ang mga DLL ay mga dynamic na aklatan na maaaring ma-access nang maraming beses sa pamamagitan ng maraming mga application. Kung may naganap na error kapag sinubukan ng isang laro o program na i-access ang isang partikular na DLL, makikita ng user ang mensaheng "hindi nahanap ang entry point ng dllregisterserver" o "hindi mailunsad, nawawalang .dll file." Ang mga ito at iba pang mga error na nagpapahiwatig ng mga problema kapag nag-access sa isang dynamic na library ay maaaring malutas kung independyente mong irehistro ang kinakailangang DLL file sa Windows.

Bakit nangyayari ang isang error kapag nag-a-access ng isang DLL?

Ang mga DLL ay idinaragdag sa operating system kapag na-update ang Windows at kapag naka-install ang mga application. Batay dito, matutukoy namin ang mga sumusunod na pangunahing dahilan kung bakit may naganap na error na nagpapahiwatig ng nawawala o problema sa DLL file:

  • Hindi na-install ang DLL. Maaaring may dalawang dahilan para dito - hindi na-update ang Windows sa kasalukuyang bersyon, at ang library ay may kasamang isa sa mga pinakabagong update, o ang laro/application sa panahon ng pag-install sa ilang kadahilanan ay hindi nag-install at nagrehistro ng mga bagong DLL.
    Tandaan: Kadalasan, ang lahat ng kinakailangang DLL ay kasama sa mga file ng pag-install ng application, at hindi inaasahan ng mga developer na ang mga kinakailangang sangkap ay na-install na sa computer.
  • Pinsala sa mga DLL. Ang problemang ito ay kadalasang nangyayari kung ang mga DLL ay nasira ng virus software o walang ingat na pagkilos ng user, halimbawa, paggawa ng mga pagbabago sa registry na humahantong sa pinsala sa mga dynamic na library.

Karamihan sa mga DLL ay naka-install sa computer kasama ng DirectX, kaya kung, kapag nag-i-install ng isang laro o application, na-prompt kang i-update/i-install ang DirectX, hindi mo kailangang tanggihan ito, kung hindi, mayroong mataas na panganib ng error na "hindi maaaring inilunsad, nawawala ang .dll file.”

Paano Magrehistro ng isang DLL sa Windows

Kung sa ilang kadahilanan ang Windows ay walang DLL na kinakailangan upang magpatakbo ng mga laro at application, maaaring irehistro ito mismo ng user. Magagawa ito sa dalawang paraan, sa pamamagitan ng pag-download muna ng kinakailangang DLL sa computer.

Pagrerehistro ng mga DLL Gamit ang Command Line

Upang magrehistro ng isang DLL na umiiral sa iyong computer sa pamamagitan ng command line, gawin ang sumusunod:


Pagrehistro ng isang DLL Gamit ang Run Line

Ang pagpaparehistro ng isang DLL sa pamamagitan ng "Run" na linya ay halos hindi naiiba sa mga aksyon na may command line. Ang gumagamit ay nangangailangan ng:


Ano ang gagawin kung hindi ka makapagrehistro ng isang DLL

Posibleng mag-isyu ang Windows ng error kapag tumutugon sa utos sa pagpaparehistro ng library, na nagpapahiwatig na na-load ang module, ngunit hindi nakita ang entry point ng DllRegisterserver. Malamang na may iba pang mga pagkakaiba-iba ng mga katulad na error na pumipigil sa DLL na mairehistro. Ang ganitong mga error ay nangyayari para sa mga sumusunod na kadahilanan:

Kung nakatagpo ka ng mga error kapag sinusubukang magrehistro ng isang DLL, ang unang hakbang ay subukang i-download ang opisyal na bahagi mula sa vendor upang maalis ang posibilidad ng isang dummy file. Upang gawin ito, kakailanganin mong gumamit ng isang search engine at hanapin kung aling bahagi ng system ang may problemang DLL.

Sa mga bihirang sitwasyon, ang mga problema sa pagpaparehistro ng DLL ay maaaring mangyari kung wala ito sa parehong folder bilang bahagi o executable file.exe ng application. Sa kasong ito, kailangan mong ilipat ang library sa folder na may maipapatupad na file at subukang irehistro itong muli.

Tingnan kung paano gumagana ang pamamaraang ito. Para magrehistro ng DLL file, maaari mong gamitin ang "regsvr" command at ang pangalan ng DLL file (kung sinusuportahan ng file ang command na ito). Gagawa ito ng landas mula sa Windows registry patungo sa DLL file, na ginagawang mas madali para sa system na mahanap at magamit ang file.

  • Karaniwan, ang paraang ito ay ginagamit upang irehistro ang mga DLL file na kabilang sa mga third-party na programa at direktang nakikipag-ugnayan sa mga utility ng system (halimbawa, ang command line).

Unawain ang kakanyahan ng error sa "entry point". Kung ang DLL file ay nakarehistro na, hindi nito sinusuportahan ang "regsvr" na utos, o ang code nito ay hindi nagpapahintulot sa iyo na kumonekta sa Windows Registry, makakatanggap ka ng mensahe ng error na "Na-load ang module ngunit ang entry point na DllRegisterServer ay hindi natagpuan." na-load, ngunit hindi nakita ang entry point ng DllRegisterServer). Kung lumabas ang mensaheng ito sa iyong screen, hindi mo mairehistro ang DLL file.

  • Ang error sa "entry point" ay hindi gaanong problema dahil ito ay isang kumpirmasyon na ang DLL file ay hindi kailangang irehistro.
  • Hanapin ang DLL file na gusto mong irehistro. Pumunta sa folder na may nais na DLL file at hanapin ito.

    • Kung ang DLL file ay para sa isang naka-install na program, buksan ang folder ng program (halimbawa, C:\Program Files\[program name]).
  • Buksan ang mga katangian ng DLL file. Mag-right-click sa DLL file at piliin ang Properties mula sa menu. Magbubukas ang isang pop-up window.

    Hanapin ang DLL file name. Sa text box sa tuktok ng Properties window makikita mo ang buong pangalan ng file.

    • Karamihan sa mga DLL file ay may mga kumplikadong pangalan, kaya hayaang bukas ang Properties window upang kopyahin ang pangalan sa ibang pagkakataon.
  • Kopyahin ang landas sa DLL file. Pindutin nang matagal ang kaliwang pindutan ng mouse at i-drag kasama ang teksto na lilitaw sa hilera ng Lokasyon, at pagkatapos ay pindutin ang Ctrl + C upang kopyahin ang landas sa DLL file.

    Hanapin ang command line. I-type ang command prompt sa Start menu search bar. Lalabas ang icon ng Command Prompt sa tuktok ng Start menu.

    Buksan ang Command Prompt bilang Administrator. Para dito:

  • Pumunta sa direktoryo na may DLL file. I-type ang cd , pindutin ang spacebar, pindutin ang Ctrl + V upang i-paste ang path sa DLL file, at pagkatapos ay pindutin ang ↵Ipasok.

    • Halimbawa, kung ang DLL file ay nasa folder na "SysWOW64", na matatagpuan sa folder na "Windows", magiging ganito ang hitsura ng command: cd C:\Windows\SysWOW64
  • Ipasok ang command na "regsvr" at ang pangalan ng DLL file. I-type ang regsvr32 , pindutin ang spacebar, ipasok ang pangalan ng DLL file (kasama ang .dll extension) at pindutin ang ↵Ipasok. Kung ang DLL file ay maaaring mairehistro, isang kumpirmasyon sa pagpaparehistro ay lilitaw sa screen.

    • Halimbawa, kung ang pangalan ng DLL file ay "usbperf.dll", ang command ay magiging ganito: regsvr32 usbperf.dll
    • Upang kopyahin ang pangalan ng isang DLL file, buksan muli ang folder na naglalaman ng DLL file (bubukas ang Properties window), i-highlight ang pangalan ng file, at pindutin ang Ctrl + C. Pagkatapos ay i-paste ang pangalan sa command line - upang gawin ito, pindutin ang Ctrl + V.
    • Kung ang DLL file ay nakarehistro na o hindi mairehistro, isang "entry point" na error ang ipapakita sa halip na isang kumpirmasyon sa pagpaparehistro.
  • Ang mga gumagamit ay nagtatanong tungkol sa kung paano magrehistro ng dll file sa Windows 7 at 8. Karaniwan pagkatapos makatagpo ng mga error tulad ng "Ang program ay hindi maaaring magsimula dahil ang kinakailangang dll ay wala sa computer." Pag-usapan natin ito.

    Sa katunayan, ang pagrehistro ng isang library sa system ay hindi isang mahirap na gawain (ipapakita ko sa iyo ang tatlong mga pagkakaiba-iba ng isang paraan) - sa katunayan, isang hakbang lamang ang kinakailangan. Ang tanging ipinag-uutos na kinakailangan ay mayroon kang mga karapatan sa administrator ng Windows.

    Gayunpaman, mayroong ilang mga nuances - halimbawa, kahit na ang matagumpay na pagpaparehistro ng DLL ay hindi kinakailangang i-save ka mula sa error na "wala sa computer" ang library, at ang hitsura ng isang error sa RegSvr32 na may mensahe na ang module ay hindi tugma sa bersyon. ng Windows sa computer na ito o ang entry point ng DLLRegisterServer ay hindi nahanap. hindi nangangahulugan na may ginagawa kang mali (ipapaliwanag ko kung ano ang ibig sabihin nito sa dulo ng artikulo).

    Tatlong paraan upang magrehistro ng isang DLL sa OS

    Sa paglalarawan ng mga karagdagang hakbang, ipinapalagay ko na nahanap mo na kung saan mo kailangang kopyahin ang iyong library at ang DLL ay nasa folder na ng System32 o SysWOW64 (at posibleng nasa ibang lugar, kung dapat naroon).

    Tandaan: sa ibaba ay ilalarawan namin kung paano magrehistro ng isang DLL library gamit ang regsvr32.exe, gayunpaman, pakitandaan na kung mayroon kang 64-bit system, mayroon kang dalawang regsvr32.exe - isa sa C:\ folder Windows\SysWOW64, ang pangalawa ay C:\Windows\System32. At ito ay iba't ibang mga file, na may 64-bit na isa na matatagpuan sa folder ng System32. Inirerekumenda ko ang paggamit ng buong landas sa regsvr32.exe sa bawat pamamaraan, at hindi lamang ang pangalan ng file, tulad ng ipinapakita sa aking mga halimbawa.

    Ang unang paraan ay inilarawan sa Internet nang mas madalas kaysa sa iba at binubuo ng mga sumusunod:

      Pindutin ang Windows key + R o pumunta sa Start menu Windows 7 piliin ang “Run” (kung, siyempre, pinagana mo ito). Ipasok ang regsvr32.exe path_to_dll_file Pindutin ang OK o Enter.

    Pagkatapos nito, kung naging maayos ang lahat, dapat mong makita ang isang mensahe na nagsasaad na matagumpay na nairehistro ang library. Ngunit, na may mataas na posibilidad, makakakita ka ng isa pang mensahe - Ang module ay na-load, ngunit ang entry point ng DllRegisterServer ay hindi natagpuan at ito ay nagkakahalaga ng pagsuri na ang iyong DLL ay ang tamang file (tulad ng sinabi ko, isusulat ko ito sa ibang pagkakataon ).

    Ang pangalawang paraan ay upang ilunsad ang command line bilang isang administrator at ipasok ang parehong command mula sa nakaraang talata.

      Patakbuhin ang command prompt bilang Administrator. Sa Windows 8, maaari mong pindutin ang Win+X key at pagkatapos ay piliin ang nais na item sa menu. Sa Windows 7, mahahanap mo ang command line sa Start menu, i-right-click ito at piliin ang “Run as administrator.” Ipasok ang command na regsvr32.exe path_to_dll_library (makikita mo ang isang halimbawa sa screenshot).

    Muli, malamang na hindi mo mairehistro ang DLL sa system.

    At ang huling paraan, na maaari ding maging kapaki-pakinabang sa ilang mga kaso:

      Mag-right-click sa DLL na gusto mong irehistro at piliin ang item na "Buksan gamit ang" menu. I-click ang "Browse" at hanapin ang regsvr32.exe file sa folder ng Windows/System32 o Windows/SysWow64, buksan ang DLL gamit ito.

    Ang kakanyahan ng lahat ng inilarawan na mga pamamaraan para sa pagrehistro ng isang DLL sa system ay pareho, bahagyang magkakaibang mga paraan ng pagpapatakbo ng parehong command - alinman ang mas maginhawa para sa iyo. At ngayon tungkol sa kung bakit walang gumagana para sa iyo.

    Bakit hindi ko mairehistro ang DLL?

    Responsive2(width:300px;height:300px)@media(min-width: 500px)(.responsive2(width:336px;height:280px))

    Kaya, nawawala ang ilang DLL file, dahil kung saan kapag inilunsad mo ang laro o nakakita ka ng isang error, na-download mo ang file na ito mula sa Internet at subukang magrehistro, ngunit alinman sa DllRegisterServer entry point o ang module ay hindi tugma sa kasalukuyang bersyon ng Windows, o marahil at iba pa, iyon ay, imposible ang pagpaparehistro ng DLL.

      Hindi lahat ng DLL file ay idinisenyo upang mairehistro. Upang ito ay mairehistro sa ganitong paraan, dapat itong magkaroon ng suporta para sa parehong DllRegisterServer function. Minsan ang error ay sanhi din ng katotohanan na ang library ay nakarehistro na. Ang ilang mga site na nag-aalok upang mag-download ng mga DLL ay talagang naglalaman ng mga dummy file na may pangalan na iyong hinahanap at hindi sila maaaring mairehistro, dahil hindi sila isang aklatan.

    At ngayon kung paano ayusin ito:

      Kung ikaw ay isang programmer at nirerehistro ang iyong DLL, subukan ang regasm. exeKung ikaw ay isang user at may hindi nagsisimula para sa iyo ng isang mensahe kung saan nawawala ang DLL kompyuter- tingnan sa Internet kung anong uri ng file ito, at hindi kung saan ito ida-download. Karaniwan, alam ito, maaari mong i-download ang opisyal na installer, na mag-i-install ng mga orihinal na aklatan at irehistro ang mga ito sa system - halimbawa, para sa lahat ng mga file na may pangalan na nagsisimula sa d3d, sapat na upang mai-install ang DirectX mula sa opisyal na website, para sa msvc - isa sa mga bersyon ng Visual Studio Redistributable. (At kung ang isang laro mula sa isang torrent ay hindi naglulunsad, pagkatapos ay tingnan ang mga ulat ng antivirus; maaaring natanggal nito ang mga kinakailangang DLL, madalas itong nangyayari sa ilang mga binagong aklatan). Karaniwan, sa halip na magrehistro ng isang DLL, ilagay ang file sa ang parehong folder kung paano gumagana ang executable file na nangangailangan ng library na ito.

    Nagtatapos ako dito, sana ay may naging mas malinaw kaysa noon.