Jak zarejestrować DLL w Windows

Użytkownicy pytają o to, jak zarejestrować plik DLL w Windows 7 i 8. Zazwyczaj po napotkaniu błędów typu: "Program nie może zostać uruchomiony, ponieważ niezbędne dll nie ma na komputerze." O tym i porozmawiaj.

W rzeczywistości rejestracja biblioteki w systemie nie jest tak trudnym zadaniem (pokażę trzy warianty jednej metody) - w rzeczywistości wystarczy jeden krok. Jedynym wymaganiem jest posiadanie uprawnień administratora Windows.

Istnieją jednak pewne niuanse - na przykład nawet pomyślna rejestracja biblioteki DLL niekoniecznie powoduje zapisanie błędu z biblioteki na komputerze i pojawienie się błędu RegSvr32 z komunikatem, że moduł nie jest zgodny z wersją systemu Windows na tym komputerze lub nie znaleziono punktu wejścia DLLRegisterServer. Nie oznacza to, że robisz coś złego (wyjaśnię to na końcu artykułu).

Trzy sposoby rejestracji DLL w systemie operacyjnym

Opisując kolejne kroki, zakładam, że znalazłeś miejsce, w którym musisz skopiować swoją bibliotekę, a biblioteka DLL jest już w folderze System32 lub SysWOW64 (a może gdzieś indziej, jeśli powinna tam być).

Uwaga: poniżej opisano sposób rejestrowania biblioteki DLL za pomocą regsvr32.exe, jednak zwracam uwagę na to, że jeśli masz system 64-bitowy, masz dwa regsvr32.exe - jeden w folderze C: \ Windows \ SysWOW64 drugi to C: \ Windows \ System32.A to są różne pliki, z 64-bitowym zlokalizowanym w folderze System32. Polecam używanie pełnej ścieżki do regsvr32.exe w każdy ze sposobów, a nie tylko nazwy pliku, jak pokazałem w przykładach.

Pierwsza metoda jest opisywana w Internecie częściej niż inne i składa się z następujących elementów:

  • Naciśnij klawisz Windows + R lub w menu Start systemu Windows 7 wybierz element "Uruchom" (jeśli, oczywiście, włączyłeś jego wyświetlacz).
  • Wejdź regsvr32.exe ścieżka_do_pliku_dll
  • Kliknij OK lub Enter.

Następnie, jeśli wszystko poszło dobrze, powinien pojawić się komunikat, że biblioteka została pomyślnie zarejestrowana. Ale najprawdopodobniej pojawi się inny komunikat - moduł jest załadowany, ale punkt wejścia DllRegisterServer nie został znaleziony, i warto sprawdzić, że plik DLL jest poprawna (to jest, jak już mówiłem, napisze później).

Drugim sposobem jest uruchomienie linii poleceń jako administrator i wprowadzenie tego samego polecenia z poprzedniego elementu.

  • Uruchom wiersz polecenia jako Administrator. W systemie Windows 8 można nacisnąć klawisze Win + X, a następnie wybrać żądany element menu. W Windows 7 możesz znaleźć wiersz poleceń w menu Start, kliknąć go prawym przyciskiem myszy i wybrać "Uruchom jako administrator".
  • Wprowadź polecenie regsvr32.exe path_to_library_dll (możesz zobaczyć przykład na zrzucie ekranu).

Ponownie, prawdopodobnie nie będzie możliwe zarejestrowanie biblioteki DLL w systemie.

I ostatnia metoda, która może być przydatna w niektórych przypadkach:

  • Kliknij prawym przyciskiem myszy bibliotekę DLL, którą chcesz zarejestrować, i wybierz pozycję menu "Otwórz za pomocą".
  • Kliknij "Przeglądaj" i znajdź plik regsvr32.exe w folderze Windows / System32 lub Windows / SysWow64, otwórz bibliotekę DLL, używając jej.

Istotą wszystkich opisanych sposobów rejestracji DLL w systemie jest to samo, tylko kilka różnych sposobów uruchomienia tego samego polecenia - co jest wygodniejsze dla kogoś. A teraz o tym, dlaczego nie masz nic.

Dlaczego nie można zarejestrować DLL

Tak więc, nie masz żadnego pliku DLL, z powodu tego, co widzisz błąd podczas uruchamiania gry lub programu, pobrałeś ten plik z Internetu i próbujesz się zarejestrować, ale albo punkt wejścia DllRegisterServer, albo moduł nie jest zgodny z bieżącą wersją systemu Windows, i może coś innego, to znaczy, rejestracja DLL jest niemożliwa.

Dlaczego tak się dzieje (dalej będzie o tym, jak to naprawić):

  • Nie wszystkie pliki DLL zostały zaprojektowane do zarejestrowania. W celu zarejestrowania go w ten sposób musi on obsługiwać samą funkcję DllRegisterServer.Czasami błąd jest również spowodowany faktem, że biblioteka jest już zarejestrowana.
  • Niektóre witryny oferujące pobieranie plików DLL zawierają w rzeczywistości fałszywe pliki o nazwie, której szukasz i których nie można zarejestrować, ponieważ w rzeczywistości nie jest to biblioteka.

A teraz jak to naprawić:

  • Jeśli jesteś programistą i zarejestruj swoją bibliotekę DLL, spróbuj regasm.exe
  • Jeśli jesteś użytkownikiem i nie uruchamiasz czegoś z komunikatem, że biblioteka DLL nie znajduje się na twoim komputerze - wyszukaj w Internecie, jaki to plik, a nie gdzie go pobrać. Wiedząc o tym, zazwyczaj można pobrać oficjalny instalator, który instaluje oryginalne biblioteki i rejestruje je w systemie - na przykład we wszystkich plikach o nazwie zaczynającej się od d3d, wystarczy umieścić DirectX z oficjalnej witryny Microsoft, dla msvc, jednej z wersji Visual Studio Redistributable. (A jeśli gra nie zaczyna się od torrenta, spójrz na raporty antywirusa, może usunąć niezbędną bibliotekę DLL, często zdarza się to w przypadku niektórych zmodyfikowanych bibliotek).
  • Zwykle zamiast rejestrowania biblioteki DLL uruchamiana jest lokalizacja pliku w tym samym folderze co plik wykonywalny, który wymaga tej biblioteki.

W tym celu mam nadzieję, że coś stało się bardziej jasne niż było.