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