MFC DLL 的模块状态的问题
请懂的高手不吝赐教,感激不尽!
class AFX_MODULE_STATE : public CNoTrackObject
{
……
#ifdef _AFXDLL
CRuntimeClass* m_pClassInit;
#endif
CTypedSimpleList<CRuntimeClass*> m_classList;
……
}
请问m_pClassInit和m_classList的关系?我知道m_classList是代表CRuntimeClass对象构成的链表,那m_pClassInit是代表该链表的头指针吗(按照候俊杰书中所说是指头指针,这是我的理解)?
如果是头指针的话,请看下面的代码(该代码是在MFC中的DLLINIT.CPP文件中):
BOOL AFXAPI AfxInitExtensionModule(AFX_EXTENSION_MODULE& state, HMODULE hModule)
{
……
// save the start of the runtime class list
AFX_MODULE_STATE* pModuleState = AfxGetModuleState();
state.pFirstSharedClass = pModuleState->m_classList.GetHead(); //注1
pModuleState->m_classList.m_pHead = pModuleState->m_pClassInit; //注2
……
}
请看注1句中的m_classList.GetHead()与注2句中的m_classList.m_pHead 能互换吗?这两个语句如何理解?