Typy bibliotek DLL
Ten temat zawiera informacje ułatwiające określają rodzaj DLL, aby zbudować.
Różne rodzaje dostępnych bibliotek DLL
Visual C++ można tworzyć biblioteki DLL systemu Win32 w c lub C++, nie należy używać biblioteki Microsoft Foundation klasy (MFC).Można utworzyć projektu - MFC DLL za pomocą Kreatora aplikacji Win32.
Samej biblioteki MFC jest dostępne, albo statycznych bibliotek lub liczbę bibliotek DLL za pomocą Kreatora MFC DLL.Jeśli biblioteka DLL jest przy użyciu MFC, Visual C++ obsługuje trzy różne scenariusze rozwoju biblioteki DLL:
Budowanie regularnych biblioteki DLL, które statycznie łączy MFC
Tworzenie regularnych biblioteki DLL, który dynamicznie łączy MFC
Służy do tworzenia rozszerzeń MFC DLL, która zawsze dynamiczne łącze MFC
Co chcesz wiedzieć więcej?
Jakiego rodzaju bibliotekę DLL, aby użyć
Jakiego typu biblioteki DLL do użycia
Jeśli biblioteka DLL nie używa MFC, budowanie non - MFC Win32 DLL przy użyciu języka Visual C++.Łączenie biblioteki DLL do MFC (statycznie lub dynamicznie) zajmuje miejsce na dysku znaczące i pamięci.Nie należy połączyć MFC, chyba że MFC faktycznie korzysta z biblioteki DLL.
Jeśli biblioteki DLL będą używać MFC i będą używane przez aplikacje MFC lub innych niż MFC, musi budować regularnych biblioteki DLL, która dynamicznie łączy MFC albo regularnych biblioteki DLL, które statycznie łączy się MFC.W większości przypadków prawdopodobnie chcesz użyć regularnych biblioteki DLL, która dynamicznie łącza do MFC, ponieważ rozmiar pliku dll będzie znacznie mniejsza i oszczędności w pamięci z udostępnionych wersji MFC może być znaczne.Jeśli statycznie łącze do biblioteki MFC, rozmiar pliku biblioteki DLL będzie większa i potencjalnie podejmowania dodatkowej pamięci, ponieważ ładuje własną prywatną kopię kod biblioteki MFC.
Budowanie biblioteki DLL, która dynamicznie łączy MFC jest szybsza niż DLL, które statycznie łączy się MFC, ponieważ nie jest konieczne powiązanie MFC samego budynku.Dotyczy to szczególnie w kompilacje debugowania, gdy program łączący musi kompaktować informacje debugowania.Łącząc się z biblioteki DLL, która już zawiera informacje o debugowaniu, istnieje mniej informacji debugowania do kompaktowania w bibliotece DLL.
Niedogodność do dynamicznego łączenia do MFC jest, że musi rozesłać udostępnionego dll Mfcx0.dll i Msvcrxx.dll (lub podobnych plików) z biblioteki DLL.Biblioteki MFC DLL są swobodnie do dystrybucji, ale nadal należy zainstalować biblioteki DLL w programie Instalator.Ponadto muszą dostarczać Msvcrxx.dll, który zawiera c run-time library, która jest używana zarówno przez program, biblioteki MFC DLL, same.
Jeśli biblioteka DLL będą używane tylko pliki wykonywalne MFC, masz wybór między budowania regularnych DLL lub rozszerzenie DLL.Biblioteki DLL implementuje klas wielokrotnego użytku, pochodzące z istniejących klas MFC lub trzeba przekazać uzyskane MFC obiektów między aplikacją i biblioteki DLL, należy zbudować rozszerzeniem DLL.
Jeśli biblioteka DLL dynamicznie łącza do biblioteki MFC, biblioteki MFC DLL może być rozprowadzane z biblioteki DLL.Ta architektura jest szczególnie użyteczne w przypadku udostępniania Biblioteka klas między wiele plików wykonywalnych, aby zaoszczędzić miejsce na dysku i zminimalizować użycie pamięci.
Wersja 4.0, Visual C++ tylko obsługiwane dwa rodzaje bibliotek DLL używanych MFC: USRDLLs i AFXDLLs.Regularne dll statycznie połączony MFC mają takie same charakterystyki jak były USRDLL.Biblioteki DLL rozszerzenia MFC mają takie same charakterystyki jak były AFXDLLs.