什么是CRunTime?

来源:百度知道 编辑:UC知道 时间:2024/05/29 17:06:57
什么是CRunTime?大家尽量详细一点儿吧,不要复制噢,我会追加分数,谢谢大家啦!

运行期库是一个广泛的概念,可以认为是一套系统级的函数库,这些函数要么在后台被使用,比如进行程序的初始化和清理操作,要么是我们会直接调用到的,比如内存管理中的malloc、数学计算中的sqrt等,所谓运行期,就是在程序运行时使用,离开了它,我们的程序寸步难行.

在Windows平台下,C Runtime Library 的情况如下:
动态连接库 导出库文件 静态连接库
Release msvcrt.dll msvcrt.lib libc.lib(单线程), libcmt.lib(多线程)
Debug msvcrtd.lib msvcrtd.lib libcd.lib(单线程),libcmtd.lib(多线程)

  CRuntimeClass是MFC实现的RTTI(运行时类型信息),MFC中的很多类需要由框架动态创建(比如文档、视图、框架窗口类等等),所以从CObject继承的类如果需要这种能力,必须实现它的CRuntimeClass,包括CreateObject静态方法(这个方法简单调用new CMyClass)。而做到这个很简单,使用DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC宏就自动拥有这个特性,看看这两个宏的定义就能理解其原理。
  CRuntimeClass在MFC中定义为一个数据结构,在文件AFX.H中声明,它是用来串起MFC从COBJECT继承下来的所有类(相当于一根绳,只要你牵住绳的一头你就可以得到绳上的所有数据),你也可以把你自己写的类加入这根绳。
  每个从CObject中派生的类都有一个CRuntimeClass对象同它关联以完成在运行时得到类实例的信息或者是它的基类。

运行期库是一个广泛的概念,可以认为是一套系统级的函数库,这些函数要么在后台被使用,比如进行程序的初始化和清理操作,要么是我们会直接调用到的,比如内存管理中的malloc、数学计算中的sqrt等,所谓运行期,就是在程序运