DECLARE_DYNCREATE(class_name)的具体作用

来源:互联网 发布:快递员抢单软件 编辑:程序博客网 时间:2024/05/02 02:45

DECLARE_DYNCREATE(class_name)的具体作用

首先还是看msdn的解释和这个语句的定义:

msdn的解释:

启用 CObject对象 --将动态创建的派生类在运行时。

DECLARE_DYNCREATE(class_name )

框架使用此功能动态创建新的对象。 例如,创建的新视图,当您打开新文档。文档,查看,并且,框架类应支持动态创建,因为框架需要动态创建它们。

添加在 .h 模块的 DECLARE_DYNCREATE 宏类的,然后包括该模块在需要访问此类对象的任何 .cpp 模块。

如果 DECLARE_DYNCREATE 在类声明中,则类实现必须包含IMPLEMENT_DYNCREATE


定义:

#define DECLARE_DYNCREATE(class_name) 


通过上面的解释:大致理解是使用这个DECLARE_DYNCREATE(class_name)可以使每个CObject的对象在运行的时候具备动态创建的能力。框架利用这种能力来创建对象,例如当它从磁盘读取一系列对象的时候,很多对象都需要动态的去创建。

msdn中解释道:在类的.H模块中加入DECLARE_DYNCREATE宏,然后在每个需要访问这个类的对象的.CPP模块中包含这个模块。

                       如果在类声明中包含了DECLARE_DYNCREATE,那么必须在类的实现中包含IMPLEMENT_DYNCREATE宏。

一句话概括:就是为了是cobject的对象在运行的时候具备动态创建的能力,如果在类声明加入了这句,在类的实现中必有有对应的IMPLEMENT_DYNCREATE宏,发现frm、view、doc的类的实现里均有对应的IMPLEMENT_DYNCREATE宏

0 0
原创粉丝点击