Отворете
Близо

Не може да се регистрира модул. Windows регистрира файлове с разширения *.dll и *.ocx. Няколко начина за регистриране на динамична библиотека

2. След като сте копирали библиотеката, натиснете комбинацията WIN+R и поставете в прозореца, който се отваря:

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

Например regsvr32 mfc100

И натиснете Enter

Ако се появи тази грешка,

след това опитайте да натиснете същата клавишна комбинация и да въведете следното:

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

Например %WINDIR%\SysWOW64\regsvr32 mfc100

Ако библиотеката е правилна, тогава регистрацията ще бъде успешна и ще видите следното съобщение

P.S. Ако трябва да регистрирате библиотека, която се намира в различна директория (не в системната директория), тогава трябва да посочите пълния път до библиотеката.

Например regsvr32


1. Копирайте изтеглената библиотека в желаната системна директория. (това е или system32, или SysWOW64)*

* В коя директория да копирате библиотеките зависи от битовата дълбочина на приложението. Ако не знаете точно в коя папка да копирате, копирайте и в двете J

2. Изтегляне архив в долната част на публикацията, разархивирайте, стартирайте файла reg.bat с администраторски права, изберете желаната битова дълбочина, натиснете Enter и въведете име на библиотека, който сте копирали в системната директория. Всичко трябва да върви добре и ще видите това съобщение.

Ако видите такова съобщение

След това изберете различен битов размер и опитайте да се регистрирате отново. Всичко трябва да върви добре.

P.S. Ако трябва да регистрирате библиотека, която се намира в различна директория (не в системната директория), тогава трябва да посочите пълния път до библиотеката в името на библиотеката.

Например C:\Program Files\1Cv77\BIN\V7PLUS.dll

Модел на многокомпонентни обекти ( ° Скомпонент Ообект Модел - COM) е основното средство за взаимодействие между програми от всякакъв тип: библиотеки, приложения, системен софтуер и др. и дефинира стандартен механизъм, чрез който един софтуер (сървърът) предоставя своите услуги на друг (клиента), което се осигурява чрез използването на определени комуникационни протоколи между тях (между клиента и сървъра). Сървърът може да бъде библиотека с динамични връзки (DLL), която се зарежда, докато приложението работи, или отделен независим процес, който може да бъде компонент на приложение или системна програма, или дори процес, изпълняван на друг компютър. За намиране на нужния на клиента сървър се използва специална информация от системния регистър на Windows, която се генерира при Регистрациясървър в системата, най-често под формата на динамично зареждащ DLL библиотечен модул. Регистрацията е необходима, тъй като програмите не работят със самите DLL, OCX, ACX, EXE файлове, а с обекти, които представляват определен набор от програмни интерфейси. Следните ключове на системния регистър се използват за регистриране на DLL файлове:

HKLM\SOFTWARE\Classes\CLSID- при регистриране на COM библиотечни обекти за всички потребители на системата;

HKCU\SOFTWARE\Classes\CLSID- при регистриране на COM библиотечни обекти само за текущия потребител;

HKLM\SOFTWARE\Wow6432Node\Classes\CLSID- за регистриране на 32-битови DLL файлове в 64-битова Windows OS;

При регистрация се създава ключ с име, еквивалентно на глобалния уникален идентификатор, в посочения раздел на регистъра GUIDрегистриран обект. GUID, по отношение на COM, е идентификатор на клас. За да разграничат идентификаторите на класа от други идентификатори, те използват подключ на системния регистър, наречен CLSID. GUID е 128-битова шестнадесетична стойност, затворена във фигурни скоби:

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

При регистрация в системния регистър се създава подключ с име, съответстващо на GUID, съдържащ информация за пътя и името на изпълнимия файл, неговата версия, време на регистрация, информация за разработчика и други параметри, които определят специфичните свойства на регистрирания обект. Изтриването или повредата на регистрационните данни води до неработоспособност на регистрирания системен компонент или приложна програма, обикновено придружено от съобщение за грешка при търсене на DLL и подкана за повторно инсталиране на проблемния софтуер. Вместо преинсталиране е напълно възможно да се получи чрез повторно регистриране на повредения обект с помощта на помощната програма regsvr32.exeналичен във всички версии на семейството операционни системи Windows.

полезност regsvr32.exeе стандартна програма за команден ред за регистриране и дерегистриране на OLE контроли, ActiveX контроли и DLL файлове в системния регистър на Windows. В 64-битовите версии на Windows има две версии на файла regsv32.exe:

64-битова версия в каталога %systemroot%\System32(обикновено C:\Windows\System32)

32-битова версия в каталога %systemroot%\SysWoW64(обикновено C:\Windows\SysWoW64)

Помощната програма изисква повишени привилегии, за да работи, така че прозорецът на командния ред трябва да се отвори с администраторски права („Изпълни като администратор“).

При стартиране regsvr32.exeбез параметри на командния ред или при стартиране с неправилни параметри се показва подсказка:

Формат на командния ред REGSVR32:

Regsvr32] DLL файл

/u- - извиква DllUnInstall, дерегистрира сървъра

/i- извиква DllInstall, като му предава незадължителен command_string като параметър;

- не извиква DllRegisterServer; може да се използва с превключвателя /I;

– “тих” режим; кутиите за съобщения не се показват;

Примери за използване regsvr32.exe:

regsvr32 /u "C:\Program Files\7-Zip\7-zip32.dll"- дерегистрирайте посочения DLL. Ако анулирането е успешно, се показва следното съобщение:

За да потиснете извеждането на съобщение, използвайте параметъра :

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

В резултат на изпълнение на тази команда, елементът 7-Zip архиватор ще изчезне от контекстното меню на Windows Explorer при щракване с десния бутон. За да го възстановите, трябва да регистрирате 7-zip.dll с командата:

regsvr32 "C:\Програмни файлове\7-Zip\7-zip.dll"

Не трябва да забравяте за битовата дълбочина на регистрираните обекти в 64-битовите версии на операционната система. Ако е необходимо да регистрирате 32-битов обект, трябва изрично да посочите пътя за 32-битовото издание на помощната програма regsvr32:

%SystemRoot%\syswow64\regsvr32.exe

Или без да използвате променливи на средата:

C:\Windows\System32\regsvr32.exe

Като допълнителен софтуерен инструмент за управление на регистрацията на COM обекти е много удобно да използвате безплатната помощна програма от Nirsoft RegDLLView.exe. Програмата не изисква инсталация в системата, има малък размер и ви позволява да:

Получавате удобен списък на всички обекти, регистрирани в системата.

Регистрирайте или отменете регистрацията на избрани обекти.

Създайте reg файл, за да извършите дерегистрация на една или повече DLL файлове.

Регистрирайте или пререгистрирайте посочения файл.

Освен това е възможно да проверите цифровите подписи на изпълними файлове на регистрирани обекти, да прегледате или промените техните свойства, както и да стартирате редактора на системния регистър с информация, показана за избрания GUID, чрез елемента от контекстното меню „Отваряне в Regedit“, извикан с десен бутон на мишката.

Инсталирането на игра или тежко приложение включва автоматично инсталиране и регистриране на необходимите DLL файлове в операционната система Windows. DLL са динамични библиотеки, които могат да бъдат достъпни многократно от множество приложения. Ако възникне грешка, когато игра или програма се опита да получи достъп до конкретна DLL, потребителят ще види съобщението „dllregisterserver entry point not found“ или „не може да се стартира, липсва .dll файл“. Тези и други грешки, показващи проблеми при достъп до динамична библиотека, могат да бъдат разрешени, ако независимо регистрирате необходимия DLL файл в Windows.

Защо възниква грешка при достъп до DLL?

DLL файловете се добавят към операционната система, когато Windows се актуализира и когато се инсталират приложения. Въз основа на това можем да идентифицираме следните основни причини, поради които възниква грешка, показваща липса или проблем с DLL файла:

  • DLL не е инсталиран. Може да има две причини за това - Windows не е актуализиран до текущата версия, а библиотеката идва с една от последните актуализации или играта/приложението по време на инсталацията по някаква причина не е инсталирала и регистрирала нови DLL файлове.
    Забележка:Най-често всички необходими DLL файлове са включени в инсталационните файлове на приложението и разработчиците не очакват, че необходимите компоненти вече са инсталирани на компютъра.
  • Повреда на DLL файлове. Този проблем най-често възниква, ако DLL файловете са били повредени от вирусен софтуер или невнимателни действия на потребителя, например правене на промени в системния регистър, които са довели до повреда на динамичните библиотеки.

Повечето DLL файлове са инсталирани на компютъра заедно с DirectX, така че ако при инсталиране на игра или приложение бъдете подканени да актуализирате/инсталирате DirectX, не е необходимо да го отказвате, в противен случай има висок риск от грешката „не може да бъде стартиран, .dll файлът липсва.“

Как да регистрирате DLL в Windows

Ако по някаква причина Windows няма DLL, необходим за стартиране на игри и приложения, потребителят може сам да го регистрира. Това може да стане по два начина, като първо изтеглите необходимия DLL на компютъра.

Регистриране на DLL с помощта на командния ред

За да регистрирате съществуваща DLL на вашия компютър чрез командния ред, направете следното:


Регистриране на DLL с помощта на Run Line

Регистрирането на DLL чрез реда „Run“ практически не се различава от действията с командния ред. Потребителят се нуждае от:


Какво да направите, ако не можете да регистрирате DLL

Възможно е Windows да издаде грешка, когато отговори на командата за регистрация на библиотеката, което показва, че модулът е зареден, но входната точка на DllRegisterserver не е намерена. Вероятно има други варианти на подобни грешки, които пречат на DLL да бъде регистриран. Такива грешки възникват поради следните причини:

Ако срещнете грешки, когато се опитвате да регистрирате DLL, първата стъпка е да опитате да изтеглите официалния компонент от доставчика, за да елиминирате възможността за фиктивен файл. За да направите това, ще трябва да използвате търсачка и да намерите към кой системен компонент принадлежи проблемната DLL.

В редки ситуации могат да възникнат проблеми с регистриране на DLL, ако не е в същата папка като изпълнимия файл.exe на компонента или приложението. В този случай трябва да преместите библиотеката в папката с изпълнимия файл и да опитате да я регистрирате отново.

Вижте как работи този метод.За да регистрирате DLL файл, можете да използвате командата "regsvr" и името на DLL файла (ако файлът поддържа тази команда). Това ще създаде път от системния регистър на Windows до DLL файла, което улеснява системата да намери и използва файла.

  • Обикновено този метод се използва за регистриране на DLL файлове, които принадлежат на програми на трети страни и които директно взаимодействат със системните помощни програми (например командния ред).

Разберете същността на грешката „входна точка“.Ако DLL файлът вече е регистриран, не поддържа командата "regsvr" или кодът му не ви позволява да се свържете с системния регистър на Windows, ще получите съобщение за грешка „Модулът е зареден, но входната точка DllRegisterServer не е намерени." е зареден, но входната точка на DllRegisterServer не е намерена). Ако това съобщение се появи на екрана ви, няма да можете да регистрирате DLL файла.

  • Грешката "входна точка" не е толкова проблем, колкото е потвърждение, че DLL файлът не трябва да се регистрира.
  • Намерете DLL файла, който искате да регистрирате.Отидете в папката с желания DLL файл и го намерете.

    • Ако DLL файлът е за инсталирана програма, отворете папката на програмата (например C:\Program Files\[име на програмата]).
  • Отворете свойствата на DLL файла.Щракнете с десния бутон върху DLL файла и изберете Properties от менюто. Ще се отвори изскачащ прозорец.

    Намерете името на DLL файла.В текстовото поле в горната част на прозореца Свойства ще намерите пълното име на файла.

    • Повечето DLL файлове имат сложни имена, така че оставете прозореца Свойства отворен, за да копирате името по-късно.
  • Копирайте пътя до DLL файла.Задръжте левия бутон на мишката и плъзнете текста, който се появява в реда за местоположение, след което натиснете Ctrl + C, за да копирате пътя към DLL файла.

    Намерете командния ред.Въведете командния ред в лентата за търсене на менюто "Старт". Иконата на командния ред ще се появи в горната част на менюто "Старт".

    Отворете командния ред като администратор.За това:

  • Отидете в директорията с DLL файла.Въведете cd , натиснете интервала, натиснете Ctrl + V, за да поставите пътя към DLL файла, и след това натиснете ↵ Въведете.

    • Например, ако DLL файлът е в папката "SysWOW64", която се намира в папката "Windows", командата ще изглежда така: cd C:\Windows\SysWOW64
  • Въведете командата "regsvr" и името на DLL файла.Въведете regsvr32, натиснете интервала, въведете името на DLL файла (заедно с разширението .dll) и натиснете ↵ Въведете. Ако DLL файлът може да бъде регистриран, на екрана ще се появи потвърждение за регистрация.

    • Например, ако името на DLL файла е "usbperf.dll", командата ще изглежда така: regsvr32 usbperf.dll
    • За да копирате името на DLL файл, отворете отново папката, съдържаща DLL файла (отваря се прозорецът Properties), маркирайте името на файла и натиснете Ctrl + C. След това поставете името в командния ред - за да направите това, натиснете Ctrl + V.
    • Ако DLL файлът вече е регистриран или не може да бъде регистриран, ще се покаже грешка „входна точка“ вместо потвърждение за регистрация.
  • Потребителите питат как да регистрират 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изберете „Run“ (ако, разбира се, сте го активирали). Въведете regsvr32.exe path_to_dll_file. Натиснете OK или Enter.

    След това, ако всичко е минало добре, трябва да видите съобщение, че библиотеката е регистрирана успешно. Но с голяма вероятност ще видите друго съобщение - Модулът е зареден, но входната точка на DllRegisterServer не е намерена и си струва да проверите дали вашата DLL е правилният файл (както вече казах, ще пиша за това по-късно ).

    Вторият метод е да стартирате командния ред като администратор и да въведете същата команда от предишния параграф.

      Стартирайте командния ред като администратор. В Windows 8 можете да натиснете клавишите Win+X и след това да изберете желания елемент от менюто. В Windows 7 можете да намерите командния ред в менюто "Старт", щракнете с десния бутон върху него и изберете "Изпълни като администратор". Въведете командата regsvr32.exe path_to_dll_library (можете да видите пример на екранната снимка).

    Отново е вероятно да не можете да регистрирате DLL в системата.

    И последният метод, който също може да бъде полезен в някои случаи:

      Щракнете с десния бутон върху DLL, който искате да регистрирате, и изберете елемента от менюто „Отваряне с“ Щракнете върху „Преглед“ и намерете файла regsvr32.exe в папката Windows/System32 или Windows/SysWow64, отворете DLL, като го използвате.

    Същността на всички описани методи за регистриране на DLL в системата е една и съща, само малко по-различни начини за изпълнение на една и съща команда - което е по-удобно. А сега защо нищо не ви се получава.

    Защо не мога да регистрирам DLL?

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

    И така, липсва ви някакъв DLL файл, поради което, когато стартирате играта или видите грешка, вие сте изтеглили този файл от интернет и се опитвате да се регистрирате, но или входната точка на DllRegisterServer, или модулът не е съвместим с текущата версия на Windows или може би и нещо друго, тоест регистрацията на DLL е невъзможна.

      Не всички DLL файлове са проектирани да бъдат регистрирани. За да се регистрира по този начин, трябва да има поддръжка за същата функция DllRegisterServer. Понякога грешката се причинява и от факта, че библиотеката вече е регистрирана. Някои сайтове, предлагащи изтегляне на DLL файлове, всъщност съдържат фиктивни файлове с името, което търсите, и не могат да бъдат регистрирани, тъй като всъщност не са библиотека.

    И сега как да го поправя:

      Ако сте програмист и регистрирате вашата DLL, опитайте regasm. exeАко сте потребител и нещо не ви тръгва със съобщение, че DLL липсва компютър- вижте в интернет какъв файл е, а не откъде да го изтеглите. Обикновено, знаейки това, можете да изтеглите официалния инсталатор, който ще инсталира оригиналните библиотеки и ще ги регистрира в системата - например за всички файлове с име, започващо с d3d, е достатъчно да инсталирате DirectX от официалния сайт, за msvc - една от версиите на Visual Studio Redistributable. (И ако игра от торент не се стартира, тогава погледнете докладите на антивирусната програма; може да е изтрил необходимите DLL файлове, това често се случва с някои модифицирани библиотеки, вместо да регистрирате DLL, поставете файла в работи същата папка като изпълнимия файл, който изисква тази библиотека.

    Завършвам с това, надявам се нещо да е станало по-ясно отколкото беше.