×

implement_dyncreate

IMPLEMENT_DYNCREATE的介绍?IMPLEMENT_DYNCREATE(CFileView, CView)

admin admin 发表于2022-05-17 05:28:59 浏览137 评论0

抢沙发发表评论

IMPLEMENT_DYNCREATE的介绍


IMPLEMENT_DYNCREATE通过DECLARE_DYNCREATE宏来使用IMPLEMENT_DYNCREATE宏,以允许CObject派生类对象在运行时自动建立。


IMPLEMENT_DYNCREATE(CFileView, CView)


什么宏也没有,不支持运行时类信息和序列化,但是支持诊断内存管理。
DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC :支持 基本功能+运行时类信息支持。
DECLARE_DYNCREATE和IMPLEMENT_DYNCREATE:支持 基本功能+运行时类信息+动态创建支持。
CECLARE_SERIAL:基本功能+运行时类信息+动态创建+序列化支持。

请高手受累指导下IMPLEMENT_DYNCREATE 这个宏的语法结构,看不懂这段代码,书上宏定义也没有这格式


和DECLEAR_DYNCREATE 一起
拿个文本文件把宏复制进去,然后用查找替换功能 全部展开
最后把这些代码 复制回 原来的.h 和.cpp里编译通过(编译通过代表展开是正确的)
再理解下结构就清楚了
一个是声明 一个是 定义
CreateObject 是用来创建对象的函数
IMPLEMENT_RUNTIMECLASS 这个应该是个创建对象的列表
里面是个RuntimeClass的类的对象,RuntimeClass MSDN上没有说明的
需要自己看下代码理解,对象后面有注释的。很久没去用MFC了,
宏的名字 和 类的名字可能有点记错 差不多这个样子。

宏里面 \ 代表换行 ## 代表连接 #代表转换为字符串
比如
a##b = ab
#a = “a“

MFC就是用这样的方式来创建对象的,而制作的时候看起来是在类里增加函数
所以初学的人会弄不清方向 把 类和对象的概念弄混
-implement_dyncreate