当前位置: 首页 > news >正文

长春网站建设产品展示住房与城乡建设厅网站

长春网站建设产品展示,住房与城乡建设厅网站,南京企业自助建站,营销型网站要点一、介绍 IMPLEMENT_DYNCREATE 是一个宏(macro),通常与DECLARE_DYNCREATE宏一起在MFC框架中使用。它的作用是为一个派生自 CObject 的MFC类提供运行时类型信息(RTTI)和对象的动态创建支持。 具体来说,IMP…

一、介绍

IMPLEMENT_DYNCREATE 是一个宏(macro),通常与DECLARE_DYNCREATE宏一起在MFC框架中使用。它的作用是为一个派生自 CObject 的MFC类提供运行时类型信息(RTTI)和对象的动态创建支持。

具体来说,IMPLEMENT_DYNCREATEC 宏为类提供了以下功能:

  1. 运行时类型信息(RTTI): 它允许在运行时确定对象的实际类型,这对于对象的类型检查和转换非常有用。你可以使用 RUNTIME_CLASS 宏来获取对象的类信息。

  2. 对象的动态创建: 类可以通过类名字符串在运行时动态创建对象。这对于动态加载类并创建对象的场景非常有用,例如在插件系统中。

二、实例

// 声明类并启用运行时类型信息和动态创建支持
class CMyObject : public CObject
{DECLARE_DYNCREATE(CMyObject)public:CMyObject();  // 构造函数// 其他成员函数和属性// 声明对象的序列化函数virtual void Serialize(CArchive& ar);
};// 在源文件中实现运行时类型信息和动态创建支持
IMPLEMENT_DYNCREATE(CMyObject, CObject)// 使用示例
CObject* pObject = CMyObject::CreateObject();  // 动态创建对象
CRuntimeClass* pRuntimeClass = pObject->GetRuntimeClass();
if (pRuntimeClass == RUNTIME_CLASS(CMyObject))
{// 对象是 CMyObject 类型
}

三、源码

IMPLEMENT_DYNCREATE在afx.h中定义如下:

#define IMPLEMENT_DYNCREATE(class_name, base_class_name) \CObject* PASCAL class_name::CreateObject() \{ return new class_name; } \IMPLEMENT_RUNTIMECLASS(class_name, base_class_name, 0xFFFF, \class_name::CreateObject, NULL)#define IMPLEMENT_RUNTIMECLASS(class_name, base_class_name, wSchema, pfnNew, class_init) \CRuntimeClass* PASCAL class_name::_GetBaseClass() \{ return RUNTIME_CLASS(base_class_name); } \AFX_COMDAT const CRuntimeClass class_name::class##class_name = { \#class_name, sizeof(class class_name), wSchema, pfnNew, \&class_name::_GetBaseClass, NULL, class_init }; \CRuntimeClass* PASCAL class_name::GetThisClass() \{ return _RUNTIME_CLASS(class_name); } \//重写GetRuntimeClass虚函数,这个函数最初的定义在CObject中,重写后,将返回子类自己的GetRuntimeClass变量CRuntimeClass* class_name::GetRuntimeClass() const \{ return _RUNTIME_CLASS(class_name); }// 获取类的名称
#define _RUNTIME_CLASS(class_name) ((CRuntimeClass*)(&class_name::class##class_name))

可以看出:主要是一个GetRuntimeClass函数,用于获取当前类的信息

参考:

DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC宏_implement_dynamicc_CT8100的博客-CSDN博客

http://www.sczhlp.com/news/124578/

相关文章:

  • 企业网站模板 演示长沙logo设计公司哪家好些
  • 怎样做网站轮播大型门户网站建设流程
  • 做淘宝还是做网站如何学好jsp网站开发
  • 通辽网站公司宁波建设网站的公司
  • 最大的网站建设公司太阳镜商城网站建设
  • wordpress做双语网站山西省城乡住房和建设厅网站首页
  • 商城网站前置审批广州低价网站建设
  • 做网站是干啥的西城做网站
  • 需要自己的网站需要怎么做济南平面设计公司
  • 网站开发编程入门学习网站主页样式
  • 宁波网站开发公司怎么样杜桥做网站哪家好
  • 宁波网站建设建站厂家东莞长安网站公司
  • 静态网站做新闻系统南昌建设银行网站
  • 呼和浩特做网站公司apmserv5.2.6 wordpress
  • 做网站要准备哪些素材优化网站内容
  • 免费网站建设平台哪个好广渠路网站建设优易建站终身用
  • 乐达网站建设公司网站设置方案
  • 织梦怎么做中英文网站网络营销人员招聘
  • logo网站有哪些伍佰亿门户网站
  • 域名网站查询苏州百度seo关键词优化市场
  • 大连网站建设好的公司wordpress 插件player
  • 学校如何报销网站开发费用网络推广营销方案100例
  • 福鼎建设局网站首页连江福州网站建设
  • 爱网站黄网站参数错误怎么解决方法
  • 西安苗木行业网站建设价格中交路桥建设有限公司招聘
  • 企业为什么做平台网站网站开发竞价单页
  • php网站开发文章管理系统电子商务网站建设完整案例教程s2sh pdf下载
  • 做eso哪家网站好新农村建设投诉网站
  • 手机网站你懂阿里巴巴国际站用户规模
  • 网站策划专员招聘wordpress添加og标签