Izolacja wspólnej biblioteki MFC formantów
Biblioteki wspólnej kontroli jest teraz odizolowane w ramach MFC, umożliwiając różnych modułów (takich jak biblioteki DLL użytkownika) do używają różnych wersji biblioteki wspólnej kontroli przez określenie wersji w ich manifestów.
Aplikacja MFC (lub kod użytkownika wywołana przez MFC) wykonywania wywołań do biblioteki wspólnej kontroli API poprzez otoki funkcji o nazwie AfxNazwaFunkcji, gdzie NazwaFunkcji jest nazwą wspólnej API formantów.Te funkcje otoki są zdefiniowane w afxcomctl32.h i afxcomctl32.inl.
Można użyć AFX_COMCTL32_IF_EXISTS i AFX_COMCTL32_IF_EXISTS2 makr (zdefiniowanych w afxcomctl32.h) do ustalenia, czy biblioteki wspólnej kontroli implementuje niektóre API zamiast wywołania GetProcAddress.
Technicznie, możesz wywołań wspólnej kontroli biblioteki API za pośrednictwem klasy otoki, CComCtlWrapper (zdefiniowaną w afxcomctl32.h).CComCtlWrapperjest również odpowiedzialny za załadunek i rozładunek Comctl32.dll.Stan modułu MFC zawiera wskaźnik do wystąpienia CComCtlWrapper.Można uzyskać dostęp za pomocą klasy otoki afxComCtlWrapper makro.
Należy zauważyć, że calling wspólnej API kontroli bezpośrednio (nie przy użyciu funkcji otoki MFC) z MFC aplikację lub użytkownika DLL będzie działać w większości przypadków, ponieważ aplikacja MFC lub użytkownika DLL jest związana z biblioteki wspólnej kontroli, o jego manifestu).Jednakże sam kod MFC ma Użyj otok, ponieważ kod MFC może być wywołana z bibliotek DLL użytkownika z różnych wersji biblioteki wspólnej kontroli.