DLL może powodują mniejszą workingset wykonawczego, jeżeli zgłoszenie zostało napisane w taki sposób, aby zarządzać kontekst przełączania między DLL (Na przykład, dla większych aplikacji, można podzielić funkcjonalność aplikacji w granicach logicznych być zaimplementowane w samodzielnych bibliotekach DLL i umożliwia ładowanie modułu ładującego w czasie wykonywania).
Chociaż prawdą jest, że biblioteki DLL są instalowane/kopiowane w tym samym folderze co pliki .exe, warunkiem jest przestrzeganie reguł ładowania ładowarek (w tym folderu systemowego (zły pomysł), PATH, bieżącego katalogu [zobacz: LoadLibrary Dokumentacja pomocy API dla pełnego opisu priorytetu]).
"Dodano" komentarz dotyczący plików LIB. W OBU dynamicznym i statycznym łączysz używając plików LIB. Ale w przypadku ładowania dynamicznego dostarczasz plik .exe wraz ze wszystkimi zależnymi bibliotekami DLL (pliki LIB zawierają wyeksportowane punkty wejściowe dla odpowiedniej biblioteki DLL).
Wolę pliki DLL, ponieważ moje aplikacje są zwykle większe i segmentowane, co pozwala mi dostarczać TYLKO te zaktualizowane komponenty (biblioteki DLL). Oddzielamy nawet logikę biznesową od prezentacji w ich własnych bibliotekach DLL [pozwala na lokalizację biblioteki zasobów tylko-zależnej od logiki.
Programowanie przy użyciu bibliotek DLL powoduje, że zmuszasz się do przestrzegania umowy eksportowanej klasy/metody lub funkcji.
+1, dobra odpowiedź. Ponadto w przypadku bibliotek korzystających z wielu aplikacji, jeśli używane są biblioteki dynamiczne, nie ma potrzeby ładowania pełnej kopii biblioteki dla każdego programu, kod wykonywalny z biblioteki może być współużytkowany przez wszystkie programy, co dodatkowo zmniejsza pamięć stosowanie. –