MFC运行时类型信息相关类

Some guys seem to be unsatisfied to use MFC, they prefer to use pure Win32 C++. But in some domains, MFC or similar framework will be a necessary option. The runtime class information is one of this domains.

 

只需要关注这两个类:CObject,CRuntimeClass

所有有这种需求的类,请都从CObject类派生,并且,从CObject类派生的类不允许多重继承。

 

从CObject类派生的类有四个级别:

1:诊断内存管理;直接从CObject类派生

2:诊断内存管理+运行时类信息;头文件中使用DECLARE_DYNAMIC宏;实现文件中使用IMPLEMENT_DYNAMIC宏

3:诊断内存管理+运行时类信息+动态创建;头文件中使用DECLARE_DYNCREATE宏;实现文件中使用IMPLEMENT_DYNCREATE宏

4:诊断内存管理+运行时类信息+动态创建+串行化;头文件中使用DECLARE_SERIAL宏;实现文件中使用IMPLEMENT_SERIAL宏

 

CObject类相关函数:

IsSerializable:对象是否能够被序列化

Serialize:序列化

GetRuntimeClass:返回与该对象有关的CRuntime结构

IsKindOf:测试该对象与一给定类的关系

 

CRuntimeClass类的成员

m_lpszClassName:类的名字

m_nObjectSize:对象的大小

m_pBaseClass:指向基类的CRuntimeClass结构的指针

m_pfnCreateObject:一个指向动态创建对象的函数指针

m_pfnGetBaseClass:返回CRuntimeClass结构

m_wSchema:类的版本号

 

CreateObject:在运行时创建一个对象

FromName:在运行时使用熟悉的类名创建一个对象

IsDerivedFrom:确定该类是否派生于指定的类

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值