隔離的 MFC 通用控制程式庫
通用控制項程式庫現在要隔離在 MFC 中,允許 (如 Dll 的使用者) 的不同模組中使用不同版本的通用控制項程式庫,藉由在他們的資訊清單中指定的版本。
MFC 應用程式 (或由 MFC 呼叫使用者程式碼) 會呼叫 Api 透過包裝函式的函式名稱的通用控制項程式庫Afx上,其中上是一個常見的控制項 API 的名稱。 這些包裝函式的函式會定義在 afxcomctl32.h 和 afxcomctl32.inl。
您可以使用AFX_COMCTL32_IF_EXISTS和AFX_COMCTL32_IF_EXISTS2巨集 (定義在 afxcomctl32.h) 來判斷是否會在下列情況中的通用控制項程式庫實作某些 API 的電話而不是GetProcAddress。
請透過包裝函式類別的通用控制項程式庫 Api 呼叫的技術上來說, CComCtlWrapper (afxcomctl32.h 中所定義)。 CComCtlWrapper也會負責載入和卸載的 comctl32.dll。 MFC 模組狀態含有指向別的執行個體的指標CComCtlWrapper。 您可以存取的包裝函式類別使用afxComCtlWrapper巨集。
請注意該電話直接通用控制項 API (不使用 MFC 的包裝函式) 從 MFC 應用程式或 DLL 的使用者能適用於大部分的情況下,因為它要求其資訊清單中的通用控制項程式庫結合的 MFC 應用程式或使用者 DLL)。 不過,在 MFC 程式碼本身必須使用包裝函式,因為可能會從使用者與通用控制項程式庫的不同版本的 Dll 呼叫 MFC 程式碼。