vc++中的动态链接库

来源:互联网 发布:本西蒙斯nba体测数据 编辑:程序博客网 时间:2024/05/22 06:40

   动态链接库(dll)一直是windows操作系统的基础,动态链接库通常不能直接运行,也不能直接接收消息,他们是一些独立的文件,其中包含能被可执行程序或其他DLL调用来完成某项工作的函数。只有在其他模块调用动态链接库中的函数时,才能发挥作用。

  在实际编程中,我们可以把完成某种功能的函数放在一个动态链接库中。然后提供给其他程序调用。

   windows API 中所有的函数都包含在DLL中,其中有3个最重要的DLL:

   1)。Kernel32.dll

          包含那些用于管理内存,进程,和线程的函数。

   2)。User32.dll

          包含那些用于执行用户界面任务的函数

  3)。GDI32.dll

          包含那些用于画图和显示文本的函数

  静态链接库和动态链接库

  •     静态链接库

              函数和数据被编译进一个二进制文件(扩展名为。LIB)。在使用静态链接库的情况下,在编译连接可执行文件时,连接器从库中复制这些数据和函数并把它们和应用程序的其他模块组合起来创建最终的可执行文件(。exe)。当产品发布时,只需要发布这个可执行文件,并不需要发布被使用的静态库

  •        动态链接库

               在使用动态库时往往提供两个文件:一个引入库文件(。lib)和一个DLL(.dll)文件。对一个动态链接库来说,其引入库文件(.lib)包含该DLL导出的函数和变量的符号名,而。dll文件包含该DLL实际的函数和数据。在使用动态链接库的情况下,在编译连接可执行文件时,只需要链接该DLL的引入库文件,该DLL中的函数代码和数据并不复制到可执行文件中,直到可执行程序运行时,采取加载所需的DLL,将该DLL映射到进程的地址空间中,然后访问DLL中导出的函数。此时,在产品发布时,出了发布可执行的文件外,同时还要发布该程序将要调用的动态链接库。

原创粉丝点击