To może być bardzo mało interesujące pytanie, ale w dzisiejszym świecie tworzenia aplikacji internetowych wielu programistów nie musi zbytnio zajmować się bibliotekami DLL, a zatem nie zawraca sobie głowy poznaniem ich przeznaczenia.
Więc co to jest dll?
- Do czego jest to używane?
- Jak to działa?
- Jak je tworzysz?
- W jakich sytuacjach stworzenie takiego jest właściwe?
Powiedziano mi, że biblioteki dll są używane do przechowywania bibliotek funkcji, ale poza tym niewiele wiem. Mam nadzieję, że ktoś tutaj może mnie oświecić, więc w końcu mogę przestać się zastanawiać, co robią te wszystkie pliki .dll w moim katalogu Windows.
Odpowiedzi:
Biblioteka DLL to biblioteka dołączana dynamicznie. Jest to zbiór kodu i / lub danych, które mogą być używane przez kilka aplikacji (lub inne biblioteki / moduły).
Na przykład wspólne metody przetwarzania plików, pracy z komponentami GUI itp. Są udostępniane w bibliotekach, więc kilka aplikacji może korzystać z tej samej funkcjonalności. To nie tylko zmniejsza potrzebę wielokrotnego tworzenia tych samych rzeczy, ale także zapewnia, że np. Wspólne okna dialogowe są takie same między aplikacjami.
Biblioteki można ładować w czasie wykonywania, a tym samym udostępniać między różnymi współbieżnymi aplikacjami. Nazywa się to dynamicznym łączeniem.
W niektórych przypadkach biblioteka może być zawarta w samej aplikacji. Nazywa się to łączeniem statycznym. Łączenie statyczne ułatwia wdrażanie kosztem elastyczności, ponieważ różne aplikacje ładują tę samą kopię biblioteki DLL.
Jednak linkowanie statyczne nie zawsze jest opcją. Np. Nie możesz łączyć statycznie aplikacji .NET. Użytkownik musi mieć biblioteki .NET, aby uruchomić aplikację .NET, a biblioteki (lub zestawy, jak są nazywane w .NET) są ładowane w czasie wykonywania.
Biblioteki DLL są tworzone za pomocą tych samych narzędzi, które są używane do tworzenia aplikacji. Konkretne szczegóły zależą w dużej mierze od użytych narzędzi.
źródło
DLL = Dynamic Link Library
Nazwa jest właściwie dość opisowa tego, co osiągają.
Biblioteka
Umożliwia wyodrębnienie kodu określonej domeny powodującej problem w jednej lokalizacji. Następnie udostępnij to wielu aplikacjom. Bibliotekę można w dowolnym momencie zamienić na inną, aby naprawić błędy lub dodać funkcjonalność.
Połączyć
Bibliotekę można „połączyć” z aplikacją, tak aby logika w bibliotece nie była kompilowana bezpośrednio do aplikacji.
Dynamiczny
Bibliotekę można załadować na żądanie. Zamiast ładować gigantyczny pojedynczy plik EXE do pamięci, system operacyjny może załadować tylko potrzebne fragmenty. Ponadto, jeśli biblioteka DLL jest współdzielona między aplikacjami, system operacyjny może zoptymalizować sposób ładowania biblioteki i udostępniać ją między aplikacjami.
źródło
Pliki DLL (biblioteki dołączane dynamicznie) można opisać jako małe „podprogramy”, które mają pomóc w poprawnym działaniu większego programu. Umożliwiają one łączenie różnych zasobów sprzętowych i programowych (w różnych momentach sesji wykonawczych) z głównym programem wykonywalnym, na którym są oparte, na zasadzie „w miarę potrzeb”. Eliminuje to konieczność ładowania wszystkiego, co ma związek z głównym programem wykonywalnym, do pamięci RAM komputera (pamięci o dostępie swobodnym), gdy program jest uruchamiany po raz pierwszy.
Zasoby oprogramowania przenoszone przez biblioteki DLL obejmują kod różnych funkcji programu, które tak naprawdę nie są potrzebne do utrzymania działania programu: to znaczy funkcje, które muszą być wywoływane tylko w określonych momentach podczas danej sesji obliczeniowej i mogą nawet nie być potrzebne w ogóle być wezwanym. Załadowanie tych funkcji (a może ich być znaczna liczba dla danego programu) do pamięci RAM komputera, gdy program jest uruchamiany po raz pierwszy, a następnie trzymanie ich tam przez całą sesję byłoby marnowaniem miejsca w pamięci RAM - co uważa się za premia.
Duży postęp:
Uwagi:
źródło
Biblioteka połączona dynamicznie.
Aby dać ci przykład, jeśli masz załadowaną bibliotekę DLL innej osoby do swojej aplikacji, możesz użyć jej fragmentów programowania.
Możesz załadować bibliotekę DLL, która generuje losowe liczby, które zawsze zaczynają się od „5” lub czegoś podobnego.
W swoim programie możesz wywołać CrazyDLL.GenerateRandomNumbersSorta () i zwróci numer.
W prawdziwym świecie mam bibliotekę DLL, która łączy 4 pola tekstowe (używałbyś ich do wpisywania adresów IP) i automatycznie akceptuje tylko liczby mniejsze niż 256 i obsługuje naciśnięcie klawisza Backspace, aby przejść do poprzedniego pola tekstowego.
Utworzyłem bibliotekę DLL z tym kodem, a teraz wszystko, co muszę zrobić, to przeciągnąć i upuścić więcej kolekcji pól tekstowych adresów IP bez konieczności wielokrotnego powielania całego tego kodu.
Ta sama biblioteka DLL ma również funkcję konwersji adresów IP na ciągi szesnastkowe i inny przydatny kod.
źródło
Z biblioteki MSDN :
Biblioteka dołączana dynamicznie (DLL) to moduł zawierający funkcje i dane, które mogą być używane przez inny moduł (aplikację lub bibliotekę DLL).
źródło
DLL = Dynamic
LoadLink Library. Jak już powiedziano, jest to w zasadzie zbiór funkcji, klas C ++ i / lub zmiennych globalnych. Możesz załadować bibliotekę DLL statycznie (tj. System operacyjny ładuje ją automatycznie podczas uruchamiania programu) lub dynamicznie (Twój program ładuje ją bezpośrednio), w którym to momencie funkcje i zawartość biblioteki DLL są dostępne dla Twojego programu.Tworzenie go jest podobne do tworzenia EXE, z wyjątkiem tego, że nie musi istnieć
main()
funkcja. Istnieją dyrektywy konsolidatora, które nakazują konsolidatorowi utworzenie biblioteki DLL, a nie EXE.Głównym powodem, dla którego chcesz to zrobić, jest hermetyzacja kodu w jednym miejscu i używanie go z wielu plików exe, zamiast łączenia kodu z każdym z nich.
Nieco historycznym powodem jest to, że twój plik exe może być mniejszy, ponieważ część kodu znajduje się fizycznie w innym pliku. Oznacza to, że ilość miejsca zajmowanego w pamięci przez twój exe może być mniejsza. W nowoczesnych systemach jest to mniejszy problem niż kiedyś, chociaż nadal może być problemem w systemie Windows Mobile.
źródło