共用方式為


AfxInitExtensionModule

呼叫此函式在擴充 DLL 的DllMain初始化的 DLL。

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

參數

  • state
    參考AFX_EXTENSION_MODULE 結構結構,它會包含在初始化後的擴充 DLL 模組的狀態。 狀態包括擴充 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將 DLL 複製 HMODULE 並擷取 DLL 的執行階段類別 (CRuntimeClass結構) 以及其物件工廠 (COleObjectFactory物件) 使用較新的修訂 CDynLinkLibrary 便會建立物件。

MFC 擴充 Dll 需要做兩件事,在其DllMain函式:

  • 呼叫 AfxInitExtensionModule ,並檢查傳回值。

  • 建立 CDynLinkLibrary 物件如果將匯出的 DLL CRuntimeClass 結構物件,或者有它自己的自訂資源。

您可以呼叫AfxTermExtensionModule從擴充 DLL 的每個處理序中斷連結時,清除擴充程式 DLL (當處理程序結束時,或當 DLL 已卸載的結果時,會發生的事AfxFreeLibrary呼叫)。

需求

標頭: afxdll_.h

請參閱

參考

AfxTermExtensionModule

概念

MFC 巨集和全域變數