今天开始学习MFC框架原理,首先了解一下MFC框架类的派生机制,这其中老师提到了一个“类工 厂”的概念,工厂一个零件的产生流程大致如下: 原材料——>符合某种特性的材料(热处理改变物理性质)——>粗毛坯(粗步加工物理形状)—— >细坯(精加工物理形状)——>成品(经过一些表面特殊处理) 在此原材料是所有零件的基础,如同MFC中的COBJECT,其加工出来半成品都是属于由基类派生 出来的(派生类),相对于上一道工序来说是成品,相对于下一道工序来说是原料,因此在一个加 工环节需要指定它的原料与目标,下面来看一下CMyApp的产生流程: CObject->CCmdTarget->CWinThread->CWinApp->CMyApp CObject是所有派生类的基类,指定了其重要的公有属性: 静态库:用一个CRuntimeClass* m_pBaseClass来保存其父类的指针 动态DLL:用一个CRuntimeClass* (PASCAL* m_pfnGetBaseClass)()获取父类指针 这个指针被保存static const AFX_DATA CRuntimeClass class##class_name的结构中, 此结构如下:
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)