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.