C++运行库(Run-time Library)的运行机制.doc

C++运行库(Run-time Library)的运行机制.doc

ID:57686793

大小:13.00 KB

页数:2页

时间:2020-09-01

C++运行库(Run-time Library)的运行机制.doc_第1页
C++运行库(Run-time Library)的运行机制.doc_第2页
资源描述:

《C++运行库(Run-time Library)的运行机制.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基本概念一个window程序就是一个可执行文件,它能够创建一个或者多个窗口并使用一个消息循环接受用户的输入。DDL(Dynamiclinklibrary)通常来说不可以直接执行,也无法接受消息。DLL包含函数,这些函数可以被程序或者其他DLL调用以进行某种计算或者实现某些功能。静态链接(staticlinking)采用高级编程语言如C,PASCAL,FORTRAN编写的源代码需要经过编译、链接不同的函数库才能生成可执行文件。函数库包含已编译函数的目标文件,这些函数通常完成一些常用的任务如计算平方根或者分配内存。当这些库函数被链接到

2、一个程序里,它们就成为了程序可执行文件的一部分。所有对这些库函数的调用已经在链接阶段设定好了,这就称作为静态链接。动态链接(DynamicLinking)动态链接机制使得程序可以在运行时链接函数库。函数库存在于自身的可执行文件里而不是像静态链接那样被拷贝到程序可执行文件里。这些函数库之所以被称作动态函数库(DLL)是因为他们只在被加载和执行阶段才链接到程序里而不是在链接阶段。当某个程序调用一个DLL,操作系统就将该DLL加载到内存,设定好指向DLL函数的参考指针使得这些函数能够被程序正确调用。如果该DLL不再被需要,操作系统就将D

3、LL从内存中卸载。动态链接可以显式地由程序执行或者隐式的由操作系统完成。静态链接函数库和动态函数库的区别.静态链接函数库存在于.LIB文件,它是目标文件的集合,而动态函数库存在于单独的可执行文件里(.dll)。.使用静态链接的程序则会包含函数库的一份拷贝,而DLL则允许多个程序共享。.静态函数库只包含代码和数据,而DLL可以包含代码,数据和资源如位图,图表,光标。.静态链接使用程序本身的地址空间,而DLL可以拥有自身的地址空间,这些地址空间可以被映射到程序的地址空间。程序(exe)和动态函数库(dll)的区别定义.可执行文件指.e

4、xe或者.dll文件,它们包含可执行代码和资源.程序是指.exe文件.DLL是window动态链接库,存在于.dll文件.系统DLL可能有.exe,.drv等文件扩展名。只有后缀为.dll的可以被window自动加载,如果是其他后缀,程序需要显式的用LoadLibrary函数加载。DLL运行机制DLL(dynamic-linklibrary)动态链接库:DLL是可执行文件,可以作为函数的共享库。动态链接(Dynamiclinking)可以让一个进程调用不属于进程本身的函数,而这些函数的代码就位于DLL中。DLL同样可以共享数据和资

5、源,多个程序可以同时访问某一个DLL的内容。动态链接(Dynamiclinking)与静态链接(staticlinking)的区别在于:动态链接允许可执行模块只包含在运行过程中定位DLL函数的信息,而静态链接则直接将引用到的函数代码包含在可执行模块里。所以使用DLL使得可执行文件的大小比静态链接的小的多。如果许多程序都使用相同的DLL,则能够节省大量的硬盘和内存。C/C++运行库(Run-timeLibrary)的运行机制DLL的初始化过程是由C/C++run-timelibrary代码完成。C/C++run-timelibrar

6、y代码包含DLL的入口(entry-point)函数_DllMainCRTStartup._DllMainCRTStartup函数调用CRT_INIT函数,CRT_INIT初始化C/C++run-timelibrary以及C++的静态全局变量(如果变量是对象,则调用对象的构造函数)。另外在初始化Crun-timelibrary的过程中,_DLLMainCRTStartup会调用DLLMain函数。DLLMain函数由VisualC++提供并链接到DLL代码中,以供_DLLMainCRTStartup调用。如果你想在DLL启动时做些

7、初始化的工作,可以在DLLMain函数中添加你的代码。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。