MFC 六大关键技术是什么
1MFC 程序的初始化过程 2RTTI 动态类型标识 3Dynamic Creation 动态生成 4Persistence 永久保留 5Message Mapping 信息映射 6Message Routing 信息传递 怎样自制RTTI
我们作为类库的设计者要在类构造起来的时候,记录必要的信息,以建立型录
型录中的类的信息,最好以链表方式连接起来
一般“类别型录”是一个结构,其中至少需要类名字,链表的Next指针,以及链表的First 指针
First 属于整体变量,一份就好,所以用 static 修饰
为了将每一个类都能拥有成员变量集合,并且最好有一定的命名规则,然后经某种手段将整个类库构造好之后,“类别型录”(就是各个 CRuntimeClass 对象)则能呈现为: 什么是DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC 宏
作用就是完成RTTI 的“类别型录”
为了将一个类对象塞到类之中,并定义一个可以捕捉到该对象地址的函数,定义一个宏为: #define DECLARE_DYNAMIC(class_name) public: static CRuntimeClass class##class_name; virtual CRuntimeClass* GetRuntimeClass()const; 比如我使用了 DECLARE_DYNAMIC(CView) 编译器预处理器为我做出的代码是: public: static CRuntimeClass classCView; virtual CRuntimeClass * GetRuntimeClass()const; 也就是定义类时,将类放入 DECLARE_DYNAMIC 宏就是把要放的对象放到了里边
具体连接工作是由IMPLEMENT_DYNAMIC 宏来实现