天天看点

DLL学习

1.动态链接库DLL的概念:

动态链接库是包含函数和数据的模块,将实现一定功能的函数和数据按照一定的规则封装在一起。简单地讲,DLL就是完成一定功能的模块,既可以包含数据、函数,也可以包含类。任何程序都可以通过调用动态库的方式使用Win32 API,从而可以访问系统底层接口。

2.DLL中的两种对象

导出对象:如导出数据、导出函数和导出类,此种对象可以被其他可执行模块调用。虽然DLL可以导出数据,但是通常DLL中的数据都是内部数据,仅供内部函数使用,不建议从DLL中导出数据。

内部对象:如内部数据、内部函数和内部类,此种对象只能在DLL内部由内部使用。

3.DLL与EXE文件的异同:

DLL动态链接库和EXE可执行文件类似,都是可执行程序模块,但是也存在很多不同之处。对于用户来说,最大的差别在于DLL不是可以直接执行的程序。从系统的角度来看,它们之间存在两个基本的区别。一是应用程序可以在系统中同步运行多个实例,而DLL只能有一个实例。二是应用程序可以管理诸如堆栈、全局内存、文件句柄和消息队列等资源,而DLL不能管理这些资源

4.运行原理:

DLL学习

调用DLL是多个模块共享相同的DLL代码,但是每个模块使用的DLL又是工作在模块自己的上下文环境中的。

 参考网址:http://book.51cto.com/art/201008/216651.htm