Regsvr32, blog ablakokra

Regsvr32 (Microsoft Windows Server Register) - egy olyan rendszer segédprogram, hogy regisztráljon, és unregister ActiveX-vezérlőket. szűrő alkatrészek (kodekek) és DLL alkatrészek Windows rendszer azáltal, hogy megváltoztatja a registry.

DLL (Dynamic Link Library, dinamikus csatolású könyvtárak) - dinamikusan dugó a rutinok (függvények) logikailag össze egyetlen bináris fájl, amely lehet újra / dinamikusan betöltött ugyanabban az időben (az) a különböző alkalmazásokhoz, amelyek működéséhez ezeket a funkciókat.

A koncepció a megosztott könyvtár nagyban egyszerűsíti az építészet, az alkalmazás, mert ahelyett, hogy minden program használja ugyanazt a biztonsági kódot, például, párbeszédablakaiban könnyebb azt egy külön fájlban (a rendszer DLL), amely ezt a funkciót a különböző alkalmazásokhoz. Ezért jellemző a dinamikus könyvtár az, hogy lehet használni a különböző alkalmazások és a rendszer a jelenlétét a memóriában csak egy példányát a dynamic link library kódot minden alkalmazás, amely tartalmaz utalásokat az könyvtár funkcióit.
Kezdve a Windows XP, attól függően, hogy a bit OS, regsvr32.exe segédprogram található vagy csak a könyvtárban% SystemRoot% \ System32 32 bites rendszereket, vagy a mappában% SystemRoot% \ System32 és% SystemRoot% \ SysWOW64 64 bites ( két különböző változatai a program). Van egy parancssori eszköz, vagyis más szavakkal, a munka a konzol és fel lehet használni a forgatókönyvet.

Jelentés a regisztrációs könyvtárak és ellenőrzések

Valamilyen oknál fogva, feltétlenül szükséges a DLL funkciók rendszerében regisztráció? Úgy vélem lenne analógiát a rendszer PATH változó (% PATH%) megfelelő. Ahogy emlékszem, a fájlok találhatók a felsorolt ​​könyvtárak a változó% PATH%. Meg lehet futtatni a parancssorból megadása nélkül a teljes elérési utat, különben nem lehet futtatni bármely könyvtár rendszer shell ők egyszerűen nem talál. Analógia és a könyvtárak, amelyek funkciója, hogy széles körben használják a különböző programok, úgy kell „bejelentett” a rendszer, különben a program nem lesz képes megtalálni őket. Azt lehet mondani, hogy a függvény hívása a kép a futtatható fájlt, a Windows bootloader (vezetője, amely felelős a memória kiosztás, kapcsolat a különböző funkciók a memóriából képek és SRN.) Tudnia kell, hol lehet tölteni a könyvtár, amely a kívánt funkciót.
De mi van a rendszerben regisztrált tekintetében a DLL? Ez egy bizonyos műveletsort, hogy módosítsa a különböző részeit a regisztrációs és a fájlrendszer könyvtár, melynek eredménye a „láthatóság” a könyvtár alkalmazásokat. Ha a könyvtár egy „fél” (nem rendszer), a könyvtár regisztrációt végzünk szakaszában az alkalmazás telepítése, karbantartás, amelynek célja funkciókat. A legtöbb esetben maga a könyvtár regisztrációs folyamat végzi hívja a külső speciális rendszer segédprogramok, vagy egy adott szekvencia szakosodott Windows API funkciók.

Gyakran előfordul, hogy nincs szükség (akár manuálisan) lehet regisztrálni a DLL, szinte mindig ez történik a telepítés során automatikusan a rendszer / szoftver komponenseket. A szükség manuális regisztráció történik, mint általában, abban az esetben, bármilyen hiba a rendszerben: telepítés / eltávolítás problémák, hiányosságok a programok, illetve abban az esetben, saját fejlesztésű DLL, ami szükséges, hogy teszteljék a.

Hogyan lehet regisztrálni a modult

Algoritmus könyvtár regisztrációs

Nem minden DLL lehet regisztrálni a regsvr32!

Lássuk, mi történik, ha például nincs meghatározva DllRegisterServer funkció:

Hogyan lehet regisztrálni a modult

Ebben az esetben azt látjuk, egy hiba képernyő „A modul betöltve, de a DllRegisterServer belépési pont nem található.” De menjünk tovább, mint a közvetlenül a regisztrációs folyamat.

új módszer

Mint már mondottuk, használt DllRegisterServer () függvény, hogy regisztrálja a könyvtárat. Ez a funkció ellenőrzi, hogy a 128 bites globálisan egyedi azonosítót (GUID Global Unique ID) minden tárgy COM / ActiveX talált a könyvtárban, majd regisztrálja a velük kapcsolatos információk a rendszerleíró adatbázisban. GUID nem más, mint egy 128 bites globálisan egyedi azonosítót (GUID Global Unique ID) azonosítja az adott objektum osztály könyvtár. Object regisztráció szükséges, mert a program nem működik a DLL-t / OCX / ACX fájlokat magukat, mint a bemutató tárgyak egy bizonyos meghatározott interfészek.
Céljából a regisztráció DLL az alábbi registry ág:
  • ága HKLM \ SOFTWARE \ Classes \ CLSID a regisztrációs könyvtárainak COM-objektumok az összes felhasználó számára a rendszer;
  • ág HKCU \ SOFTWARE \ Classes \ CLSID a regisztrációs COM-objektumok könyvtár csak az aktuális felhasználó számára;
  • ága HKLM \ SOFTWARE \ Wow6432Node \ Classes \ CLSID bejegyzését a 32 bites DLL 64 bites Windows operációs rendszer;
  • HKEY_CLASSES_ROOT (HKCR) egyesíti a HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes és HKEY_CURRENT_USER \ SOFTWARE \ Classes. és marad a rendszerben, hogy kompatibilis a korábbi verziók a COM.

    Az ág HKEY_CLASSES_ROOT \ CLSID kulcs létrehozásakor a nevét a megfelelője a GUID. GUID hivatkozva a COM osztályazonosítójával hívott. Megkülönböztetni a osztályazonosítókat egyéb azonosítók, nekik a nevet osztályazonosítót. Egy példa az érték lehet egy string osztályazonosítót kilátás. A globális értelemben, az egyedi számok „nem ismétlődő”, és egyedileg azonosítja a rendszer összetevőit, amit elmesél nekünk egyediségét a könyvtár objektum osztály a rendszeren belül. Subsections azokban ágai adatbázis lehet:

    Azaz, a (alapértelmezett) a kulcsok értékeinek felelnek meg a teljes elérési utat a regisztrált könyvtárban.

    Így elmondható, hogy a regisztrációs folyamat a könyvtár célja, hogy tájékoztassa az operációs rendszer, hogy a végrehajtás pontok által biztosított tárgy egy specifikus azonosítóval található a megfelelő fájlt.

    Ha meg kell változtatni a helyét a DLL-t a rendszer (például megváltoztatja a könyvtár helyét), akkor hozza átregisztráció.

    régi módszer

    Amellett, hogy a jelenlegi módszer a registry-ben is van egy ága HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ SharedDLLs. Azt is feltételezhetjük, hogy arra utal, hogy az elavult módszerek bejegyzési megosztott könyvtárak DLL alapján számítva a kapcsolatok száma a könyvtárban. Ez az ág szánt regisztrációs könyvtárak fogja használni több program a rendszerben? Ebben az ágazatban vannak olyan paraméterek, mint például REG_DWORD, amelyek tartalmazzák a teljes elérési út nevét a rendszerben regisztrált megosztott könyvtárakat (pl: C: \ Windows \ system32 \ VBAME.DLL). A paraméter értéke változhat 1 és 65535 Az a tény, hogy ez az érték - használja számláló, vagy ahogy nevezik, a kapcsolatok száma. Gyakran előfordul, hogy ez a felvétel módszert alkalmaztuk nem-MSI szerelők. Minden alkalommal, amikor egy hasonló telepítő saját nyilvántartást a rendszerben könyvtár, ami már regisztrált valaki (azaz jelen a SharedDLLs), növeli a használata a számláló 1, és amikor (pl törlés) könyvtári kijelentkezik a számláló értéke 1-gyel ezt a logikát hajtották végre az első Windows-verzió, hogy ezt a jelenséget a „DLL Hell”. A paraméterek egyes könyvtárak, láthatjuk elég nagy érték (4096), azt hiszem, az így megjelölt kritikus a könyvtári rendszer, és a számláló mesterségesen megnövelt azzal a céllal, hogy a különböző egyéni csomagok eltávolításuk nem véletlenül csökkent a használat számlálót 0 és ne kapcsolja ki a DLL .
    Összhangban a fenti, elméletileg a regisztrációs végezhetjük manuálisan magad, ha tudod, mi a kulcsokat és értékeket talált a rendszerleíró adatbázisban.

    32-bites és 64-bites változatban regsvr32

    Abban a pillanatban, a 64-bites Windows kezdték használni aktívabban. Ha a 32-bites Windows, volt elég átlátható és ott csak egy változata a program, a 64-bites Windows, két regsvr32 segédprogramot:

    • A 64-bites változata a típus -% SystemRoot% \ System32 \ regsvr32.exe (alapértelmezés szerint futtatásakor megadása nélkül az úton);
    • A 32-bites változata a típus -% systemroot% \ syswow64 \ regsvr32.exe

    Tehát, egy 64 bites rendszer, a fejlesztők megtartották a régi könyvtár elnevezési rendszer, de az ott elhelyezett már „természetes” 64-bites alkalmazásokat. Ez annak köszönhető, hogy az alkalmazások kompatibilitását, és csökkenti a ráfordított idő fordítása kódot egy 32 egy 64 bites Windows. Így a 64-bites Windows futtatható mind a 32 bites és 64 bites változatai programok, illetve és a DLL lehet használni, és a 32 és 64 bites.
    Amikor futtatja a regsvr32 a 64 bites változata az operációs rendszer regisztrálni DLL, akkor használja az alapértelmezett 64-bites változata a segédprogramot.

    A 64 bites Windows van egy aranyszabály: System32 könyvtárban rendszert úgy tervezték, natív 64 bites alkalmazásokat, SysWOW64 könyvtár 32 bites. Bit nem intuitív, de ez a megállapított tény. WOW64 (Windows on Windows 64) - 32 bites alrendszer fut a 64 bites környezetben.

    Tehát, ha azt szeretnénk, hogy regisztrálja a 32 bites változata a DLL 64 bites operációs rendszer, és van egy hiba, akkor tegye a következőket:

    1. Nyisson meg egy parancssort adminisztrátori jogokat;
    2. Ha szükséges a regisztráció, a 32 bites DLL található a könyvtárban% SystemRoot% \ System32. mozgassa a mappát% SystemRoot% \ syswow64;
    3. Ezt a parancsot:
      % SystemRoot% \ syswow64 \ regsvr32 <полный путь к библиотеке DLL>

    azaz, például:% SystemRoot% \ syswow64 \ regsvr32% SystemRoot% \ SysWOW64 \ test.dll

    Ha szembe a kihívással, hogy regisztrálja a 64 bites DLL 64 bites operációs rendszer:

    1. Nyisson meg egy parancssort adminisztrátori jogokat;
    2. Ha szükséges a regisztráció, a 64 bites DLL található a könyvtárban% SystemRoot% \ SysWOW64. mozgassa a mappát% SystemRoot% \ System32
    3. Ezt a parancsot:
      % SystemRoot% \ System32 \ regsvr32 <полный путь к библиотеке DLL>

    azaz, például:% SystemRoot% \ System32 \ regsvr32% SystemRoot% \ System32 \ test.dll

    szintaxis regsvr32

    Amint azt már említettük, regsvr32 - egy parancssori eszköz, így a gyakorlati használat is elfogyott az összes ismert cmd, vagy használható a forgatókönyvet.

    A legtöbb esetben van szükség, mert emelt szintű, azaz egy helyi rendszergazdai jogokkal regisztrálni DLL.

    regsvr32.exe segédprogram a következő parancssori paramétereket:

    Regsvr32 [/ u] [/ s] [/ n] [/ i [: parancssor]]

    Listája eszközgombok és leírás tetteik biztosított az alábbi táblázat tartalmazza:

    Eіnaare, pepvaya ppogpamma vydaot üzenet ismét: "RIASZTÁS za ppedely diapazona". Potom zagpyzhaetcya cmyaty Com ppogpammy egy cama ona ne pabotaet. Bo vtopoy ppogpamme zagpyzka ppoxodit nopmalno, Nr okno poicka Po infopmatsii ppogpammy otcytctvyet a szekvencia, ALATT popytke zapyctit poick vydaotcya üzenet ismét: «Run-tіme error '31037' Hiba loadіng származó fіle” és ppogpamma vypybaetcya. B ykazannom Bami pazdele peectpa ppicytctvyet csak pepvaya ppogpamma. Oba papametpa ( "Po ymolchaniyu" és "Rath") vedyt nA papky c EXE-faylom.

    Svetlana, ott nem nélkülözheti a kísérletet. Következtében, hogy a rendszer jöhet instabil vagy működésképtelen. Ha nem fél, akkor képes lesz:
    1. A regisztrációhoz a nyilvántartásba, és a második program hasonló az első. Ennek megfelelően a két paraméter az új felvétel már most meg kellene vezetni egy működő mappát a második program. Mindkét program mv14.ocx legyen az Alkalmazások mappában van, amelyeket a Path paraméter.
    2. Ha törölni az összes többi bejegyzés a nyilvántartásban mv14.ocx. Persze, jobb lenne, hogy egy biztonsági másolatot a regisztrációs a kísérlet előtt. Az ember csak eltölteni törlésére keresztül regsvr32 paraméterrel / u, de ez nem működik minden helyzetben.

    Azt cmelaya devyshka, Lo escho Iicyc govopil: «Ő chelovek számára Wіndowѕ egy Wіndowѕ a cheloveka” :)))) Ppodelala Oba ekcpepimenta. Pezyltat hogy cozhaleniyu, Tot zhe: Libo pabotaet ppogpamma A, Libo - B. Bmecte - nikak :(