深入浅出MFC学习笔记:MFC六大关键技术仿真之动态生成

本文探讨了MFC框架下的动态生成技术实现原理,通过改进CRuntimeClass并利用类别型录网来支持运行时根据类别名称创建对象。该技术为后续序列化功能打下了基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

动态生成

参考文献:深入浅出MFC-侯捷

开始着手剖析动态生成的实现

有了类别型录网,就可以开始着手解决棘手的动态生成问题。动态生成的困难点在于你没有办法在程序执行期间,根据动态获得的一个类别名称(通常是读档),要求程序产生一个对象。如果我们能够把类别的大小记录在类别型录中,把构造函数(CruntimeClass::CreatObject)也记录在类别型录中,当程序在执行期间获得一个类别名称,它就可以在类别型录中找出对应的元素,然后调用其构造函数(这里所指的并非是C++中的构造函数),产生出对象。

因此可在CRuntimeClass中加以改进下,新的数据结构如下:






因此如果有一下语句,就可以组织成一棵大树



其中凡是m_pfnCreateObject不为NULL者,即可动态生成。图中CFrameWnd和CWnd即可动态生成。

注:其实动态生成技术是为了下文的Serialize技术做铺垫。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值