Isolation der MFC-Bibliothek für allgemeine Steuerelemente

Die Bibliothek für allgemeine Steuerelemente wird jetzt in MFC gefunden und ermöglicht es verschiedenen Module (z. B. Benutzer DLL), um verschiedene Versionen der Bibliothek für allgemeine Steuerelemente verwenden, indem Sie die Version in ihren Manifesten angibt.

Eine MFC-Anwendung (oder der Benutzercode aufgerufen) von MFC stellt der Bibliothek für allgemeine Steuerelemente mit Funktionen Wrapper Aufrufe über APIs AfxFunctionName, wo FunctionName der Name der allgemeine Steuerelemente API ist.Diese Funktionen sind in afxcomctl32.h Wrapper und afxcomctl32.inl definiert.

Sie können die AFX_COMCTL32_IF_EXISTS und AFX_COMCTL32_IF_EXISTS2 Makros (definiert in afxcomctl32.h), um zu bestimmen, ob die Bibliothek für allgemeine Steuerelemente ein bestimmtes API implementiert, anstatt GetProcAddress aufzurufen.

Technisch Ausführen der Bibliothek für allgemeine Steuerelemente API durch eine Wrapperklasse, CComCtlWrapper Aufrufe (definiert in afxcomctl32.h).CComCtlWrapper ist auch für das Laden und Entladen von comctl32.dll verantwortlich.Der MFC-Modulzustand enthält einen Zeiger auf eine Instanz von CComCtlWrapper.Sie können die Wrapperklasse mit dem afxComCtlWrapper Makros zugreifen.

Beachten Sie, dass aufrufenden allgemeine Steuerelemente API (nicht direkt mithilfe des MFC-Wrappers funktioniert), einer MFC-Anwendung oder von einem Benutzer DLLs in den meisten Fällen funktionieren, da die MFC-Anwendung oder der Benutzer auf die Bibliothek DLL für allgemeine Steuerelemente gebunden ist, die im Manifest angeforderte) an.Allerdings muss der MFC-Code auch die Wrapper verwenden, da MFC-Code vom Benutzer kann mit verschiedenen DLLs Bibliothek für allgemeine Steuerelementes-Versionen aufgerufen wird.