Visual c++ 请解释如何使用AFX_扩展_模块结构

Visual c++ 请解释如何使用AFX_扩展_模块结构,visual-c++,mfc,Visual C++,Mfc,更具体地说,为什么将structAFX_扩展_模块用作 “静态AFX_扩展_模块NVC_MFC_DLLDLL={NULL,NULL};” 当它被定义为 struct AFX_EXTENSION_MODULE{ BOOL bInitialized; HMODULE hModule; HMODULE hResource; CRuntimeClass* pFirstSharedClass; COleObjectFactory* pFirstSharedFacto

更具体地说,为什么将struct
AFX_扩展_模块
用作

“静态AFX_扩展_模块NVC_MFC_DLLDLL={NULL,NULL};”

当它被定义为

struct AFX_EXTENSION_MODULE{
    BOOL bInitialized;
    HMODULE hModule;
    HMODULE hResource;
    CRuntimeClass* pFirstSharedClass;
    COleObjectFactory* pFirstSharedFactory;
};

{NULL,NULL}
中的两个
NULL
代表什么?

此扩展模块结构包含在加载到应用程序中的所有扩展模块(在文档中主要称为扩展DLL)的列表中。MFC使用此列表查找要序列化的类名,并查找不在主模块中的资源

该结构由AfxInitExtensionModule填充

通过创建CDynLinkLibrary对象,扩展模块包含在DLL链中。这通常是在调用AfxInitExtensionModule之后完成的


您可以在技术说明33和58中找到更多关于扩展模块/DLL的信息。

它肯定是从早期MFC版本盲目复制/粘贴的。这一点都不重要,移除初始值设定项可以让你感觉更好。