动态创建对象DECLARE_DYNCREATE(DECLARE_DYNAMIC/DEClARE_DYNAMIC)
来源:互联网 发布:浙江省大数据管理中心 编辑:程序博客网 时间:2024/05/16 08:47
DECLARE_DYNAMIC/DEClARE_DYNAMIC是为了确定运行时对象属于哪一个类而定义的宏。
DEClARE_DYNCREATE/IMPLEMENT_DYNCREATE是为了“动态创建"类的实例而定义的宏。new可以用来创建对象,但不是动态的。比如说,你要在程序中实现根据拥护输入的类名来创建类的实例,下面的做法是通不过的:
char szClassName[60];
cin >> szClassName;
CObject* pOb=new szClassName; //通不过
这里就要用到DEClARE_DYNCREATE/IMPLEMENT_DYNCREATE定义的功能了。
定义:
//////////////////////////////////////////////////////////////////////////////
// Helper macros for declaring CRuntimeClass compatible classes
#ifdef _AFXDLL
#define DECLARE_DYNAMIC(class_name) /
protected: /
public: /
#define _DECLARE_DYNAMIC(class_name) /
protected: /
public: /
#else
#define DECLARE_DYNAMIC(class_name) /
public: /
#define _DECLARE_DYNAMIC(class_name) /
public: /
#endif
引用:
DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC
#define DECLARE_DYNAMIC(class_name)/
public:/
#define IMPLEMENT_DYNAMIC(class_name,bass_class_name)/
#define _IMPLEMENT_RUNTIMECLASS(class_name,base_class_name,wSchema,pfnNew)/
#define RUNTIME_CLASS(class_name)/
//这部分之所以单独define出一个宏,主要是为了方便从某个指定的class直接得到它的CRuntimeclass静态成员
//以下是解释AFX_CLASSINIT结构,注意,这不是一个宏
//为了看得更加清楚,我按照struct定义的惯常格式来写这个struct的定义
struct AFX_CLASSINIT {
};
AFX_CLASSINIT::AFX_CLASSINIT(CRuntimeClass *pNewClass)
{
}
http://blog.sina.com.cn/s/blog_8aa88ea201011xxp.html
- 动态创建对象DECLARE_DYNCREATE(DECLARE_DYNAMIC/DEClARE_DYNAMIC)
- 再谈 动态创建对象DECLARE_DYNCREATE(DECLARE_DYNAMIC/DECLARE_DYNAMIC)
- DECLARE_DYNAMIC/DECLARE_DYNCREATE/DECLARE_SERIAL
- DECLARE_DYNAMIC和DECLARE_DYNCREATE宏
- DECLARE_DYNAMIC DECLARE_DYNCREATE DECLARE_SERIAL
- DECLARE_DYNAMIC 和 DECLARE_DYNCREATE
- DECLARE_DYNCREATE与DECLARE_DYNAMIC区别
- DECLARE_DYNAMIC
- DECLARE_DYNCREATE(DECLARE_DYNAMIC)与IMPLEMENT_DYNCREATE(IMPLEMENT_DYNAMIC)解析
- DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC
- DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC
- DECLARE_DYNAMIC IMPLEMENT_DYNAMIC
- DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC
- DECLARE_DYNAMIC、IMPLEMENT_DYNAMIC
- DECLARE_DYNAMIC() MFC Library Reference
- DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC宏
- DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC宏
- DECLARE_DYNAMIC宏的添加
- spoj1812
- oracle会话线程管理
- Python异常处理体系
- MFC的一些宏的整理 (DECLARE_DYNCREATE/IMPLEMENT_DYNCREATE)
- Ubuntu下eclipse安装subclipse插件
- 动态创建对象DECLARE_DYNCREATE(DECLARE_DYNAMIC/DEClARE_DYNAMIC)
- ffmpeg学习笔记
- 利用Fragment创建动态UI 之 Fragment之间的通信
- 【整理】MySQL引擎
- C语言里回车和换行的区别
- Micro Java Programs for JVM
- 使用CSS3 Media Queries实现响应式设计
- Java IO 流中的 flush
- 扯扯淡