Kompilowanie wykonywanych jednocześnie aplikacji C/C++

A - by-side zestawu jest to zbiór zasobów — grupy biblioteki dll, klasy okien, serwery COM, biblioteki typów lub interfejsy — dostępne do używania w czasie wykonywania aplikacji.Główną zaletą przepakowanie bibliotek DLL w zestawach jest że wiele wersji zestawów mogą być używane przez aplikacje w tym samym czasie i jest możliwe zestawy usług aktualnie zainstalowane w przypadku opublikowanych aktualizacji.

Aplikacja Visual C++ może używać jednego lub kilku bibliotek DLL w różnych częściach aplikacji.W czasie wykonywania biblioteki DLL są ładowane do główny proces i wymagany kod jest wykonywany.Aplikacja opiera się na system operacyjny, aby znaleźć żądanej biblioteki dll, zrozumieć, co inne zależne biblioteki DLL ma być załadowany, a następnie załadować je wraz z żądanej biblioteki DLL.W wersjach systemów operacyjnych Windows starszych niż Windows XP, Windows Server 2003 i Windows Vista program ładujący system operacyjny wyszukuje zależne biblioteki dll w aplikacji folder lokalny lub inny folder określony w ścieżce systemu.W systemie Windows XP, Windows Server 2003 i Windows Vista, program ładujący systemu operacyjnego można także wyszukać zależne biblioteki DLL za pomocą manifest pliku i poszukaj zestawów side-by-side, zawierających tych bibliotek DLL.

Domyślnie, jeśli biblioteka DLL jest zbudowany z programu Visual Studio, posiada manifest aplikacji osadzony jako zasób RT_MANIFEST o identyfikatorze równym 2.Tak jak w przypadku pliku wykonywalnego tym manifeście opisuje zależności tej biblioteki dll na innych zestawów.Założono, że biblioteka DLL nie jest częścią zestawu side-by-side i aplikacje zależne od tej biblioteki DLL nie zamierza używać manifest aplikacji go załadować, ale zamiast polegać na moduł ładujący systemu operacyjnego, aby znaleźć ten plik DLL na ścieżce systemu.

[!UWAGA]

Jest to ważne dla biblioteki DLL, która używa manifest aplikacji mają manifest osadzony jako zasób o identyfikatorze równym 2.Jeśli biblioteka DLL jest ładowany dynamicznie w czasie wykonywania (na przykład za pomocą LoadLibrary funkcja), program ładujący system operacyjny ładuje zestawy zależne określone w manifeście DLL.Manifest aplikacji zewnętrznych dla bibliotek DLL nie jest sprawdzana w trakcie LoadLibrary zadzwonić.Jeśli manifest nie są osadzone, moduł ładujący może próbować załadować niepoprawne wersje zestawów lub nie Znajdź i Znajdź zależne zestawy.

Jednej lub kilku związanych z biblioteki dll może przepakowane w zgromadzenie side-by-side z odpowiednim manifestu zestawu, która opisuje pliki, które tworzą zestaw, jak również zależności zestawu na innych zestawów side-by-side.

[!UWAGA]

Jeżeli zestaw zawiera jeden DLL, zaleca się osadzić manifestu zestawu w tej biblioteki DLL jako zasób o identyfikatorze równa 1, a dać zestaw prywatny taką samą nazwę jak biblioteki DLL.Na przykład, jeśli nazwa biblioteki DLL jest mylibrary.dll, wartość atrybutu nazwy są używane w <assemblyIdentity> element manifest może być również mylibrary.W niektórych przypadkach, gdy biblioteka jest rozszerzeniem innym niż rozszerzenie .dll (na przykład projekt formantów ActiveX MFC tworzy bibliotekę .ocx) manifest zestawu zewnętrzne mogą być tworzone.W tym przypadku nazwa Zgromadzenia i jego manifestu musi być inna niż nazwa biblioteki dll (na przykład MyAssembly, MyAssembly.manifest i mylibrary.ocx).Jednak nadal zaleca się zmienić nazwy tych bibliotek extension.dll i Osadź manifest jako zasób, aby zredukować koszty utrzymania przyszłych tego zestawu.Aby uzyskać więcej informacji dotyczących sposobu wyszukiwania przez prywatne zestawy system operacyjny, zobacz Kolejności wyszukiwania montażu.

Ta zmiana może zezwolić wdrażania odpowiadającymi im bibliotekami DLL jako Zestaw prywatny w lokalnym folderze aplikacji albo jako udostępnionego zestawu w pamięci podręcznej zestawów wygrywa.Kilka kroków muszą być przestrzegane w celu osiągnięcia poprawne zachowanie tego nowego zestawu; są one opisane w wytyczne dotyczące tworzenie zestawów - by-side.Po autorem jest poprawnie zestawu można wdrożyć albo się wspólną lub prywatną na zgromadzeniu razem z aplikacją, która zależy od niego.Podczas instalowania zestawów side-by-side jako zestawie współużytkowanym, może albo następujące wytyczne przedstawione w Instalowania zestawów Win32 dla Side-by-Side udostępniania w systemie Windows XP lub użyj korespondencji seryjnej modułów.Podczas instalowania zestawów side-by-side jako zestaw prywatny, może po prostu kopiowania odpowiednich manifest DLL, zasoby i montaż jako część procesu instalacji do lokalnego folderu aplikacji na komputerze docelowym, zapewnienie, że przez moduł ładujący w czasie wykonywania można znaleźć tego zestawu (zobacz Kolejności wyszukiwania montażu).Innym sposobem jest użycie Instalator Windows i postępuj zgodnie ze wskazówkami nakreślonymi w Instalowania zestawów Win32 dla użytku prywatnego aplikacji w systemie Windows XP.

Zobacz też

Koncepcje

Przykłady rozmieszczenia

Kompilowanie izolowanych kompilacji C/C++

Inne zasoby

Kompilowanie aplikacji izolowanych C/C++ oraz aplikacji wykonywanych równocześnie