探察RUNTIME_CLASS之类的秘密
|
学mfc学到文档,视图和框架的时候,知道必须在这三个类的派生类的类声明 里加上DECLARE_DYNCREATE,然后在类声明外合适的地方加上IMPLEMENT_DYNCREA TE,然后文档,视图和框架,还有文档模板就可以协调工作了。查看msdn,发现 类似的宏有这几对: DECLARE_DYNAMIC 和 IMPLEMENT_DYNAMIC DECLARE_DYNCREATE 和 IMPLEMENT_DYNCREATE DECLARE_SERIAL 和 IMPLEMENT_SERIAL 虽然msdn里介绍了他们的作用,但对于它们为什么会起这样的作用心里却没 底,于是翻了翻mfc的源代码,喜欢钻牛角尖的人可以和我一起来钻一钻。 1。 RUNTIME_CLASS宏的定义是这样的: #define RUNTIME_CLASS(class_name) ((CRuntimeClass*)(&class_name::class##class_name)) 其中##的意思是把##两边的符号都进行宏扩展(如果它们是宏的话),然后把扩展 后的内容连接在一起,中间不加空格。例如:RUNTIME_CLASS&# |
探察RUNTIME_CLASS之类的秘密
最新推荐文章于 2022-07-12 20:28:54 发布
本文探讨了RUNTIME_CLASS在类层次结构中的作用,详细解释了它如何在MFC框架中用于动态对象创建和类型检查。通过实例分析,揭示了其在NULL指针处理和文档扩展方面的关键应用。
摘要由CSDN通过智能技术生成