共用方式為


AfxInitExtensionModule

呼叫在擴充 DLL 的 DllMain 之這個函式來初始化 DLL。

BOOL AFXAPI AfxInitExtensionModule( 
   AFX_EXTENSION_MODULE& state, 
   HMODULE hModule  
);

參數

  • state
    在初始化之後將包含擴充 DLL 模組狀態之 AFX_EXTENSION_MODULE 結構 結構的參考。 這個狀態是由擴充 DLL 初始化為執行一般靜態物件建構的一部分執行階段類別物件的複本,在 DllMain 中項目之前。

  • hModule
    擴充 DLL 模組的控制代碼。

傳回值

TRUE ,如果擴充 DLL 成功初始化;否則, FALSE

備註

例如:

static AFX_EXTENSION_MODULE NVC_MFC_DLLDLL = { NULL, NULL };
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
    // Remove this if you use lpReserved
    UNREFERENCED_PARAMETER(lpReserved);

    if (dwReason == DLL_PROCESS_ATTACH)
    {
        TRACE0("NVC_MFC_DLL.DLL Initializing!\n");
        
        // Extension DLL one-time initialization 
        if (!AfxInitExtensionModule(NVC_MFC_DLLDLL, hInstance))
            return 0;

AfxInitExtensionModule 會做HMODULE的複本,且會捕捉模組的 Run-Time 類別 ( CRuntimeClass 物件),以及其在建立 CDynLinkLibrary (COleObjectFactory 物件)。

MFC 擴充 DLL 必須在其 DllMain 函式的兩個項目:

  • 呼叫 AfxInitExtensionModule 並檢查傳回值。

  • 建立 CDynLinkLibrary 物件 DLL 匯出 CRuntimeClass 結構 物件或擁有自己的自訂資源。

您可以呼叫AfxTermExtensionModule在每個處理序從擴充 DLL 中斷連結時清除擴充 DLL (發生在處理序離開或卸載 DLL 來當做 AfxFreeLibrary 呼叫的結果時) 。

需求

Header: afxdll_.h

請參閱

參考

AfxTermExtensionModule

概念

MFC 巨集和全域