DECLARE_DYNAMIC 表示可以運作時識别該類
DECLARE_DYNCREATE 包含了DECLARE_DYNAMIC的功能,并且可以在運作過程中動态建立對象。如果需要動态建立類對象,需要使用這個宏定義。
DECLARE_DYNCREAT定義如下:
#define DECLARE_DYNCREATE(class_name) \
DECLARE_DYNAMIC(class_name)\
static CObject* PASCALCreateObject();(這一句就是DECLARE_DYNCREATE多出來的一句)
這裡是DECLARE_DYNAMIC聲明的(本質上就是聲明了一個CruntimClass,并且提供了一個可以擷取CruntimeClass的函數)
DECLARE_DYNAMIC(class_name)
public:
staticconst CRuntimeClassclass##class_name;
virtual CRuntimeClass* GetRuntimeClass()const;