一.前言
在windows操作系统中使用dll有很多优点,最主要的一点是多个应用程序.甚至是不同语言编写的应用程序可以共享一个dll文件,真正实现了资源"共享",大大缩小了应用程序的执行代码,更加有效的利用了内存;使用dll的另一个优点是dll文件作为一个单独的程序模块,封装性.独立性好,在软件需要升级的时候,开发人员只需要修改相应的dll文件就可以了,而且,当dll中的函数改变后,只要不是参数的改变,程序代码并不需要重新编译.这在编程时十分有用,大大提高了软件开发与维护的效率. 【程序编程相关:ASP.NET2.0中使用HiddenF】自从微软推出16位的windows操作系统起,此后每种版本的windows操作系统都非常依赖于动态链接库(dll)中的函数与数据,实际上windows操作系统中几乎所有的内容都由dll以一种或另外一种形式代表着,例如显示的字体与图标存储在gdi dll中.显示windows桌面与处理用户的输入所需要的代码被存储在一个user dll中.windows编程所需要的大量的api函数也被包含在kernel dll中. 【推荐阅读:ASP.NET2.0中使用multivi】二.dll的概念 【扩展信息:ASP.NET1.0升级ASP.NET2】既然dll那么重要,所以搞清楚什么是dll.如何在windows操作系统中开发使用dll是程序开发人员不得不解决的一个问题.本文针对这些问题,通过一个简单的例子,即在一个dll中实现比较最大.最小整数这两个简单函数,全面地解析了在visual c++编译环境下编程实现dll的过程,文章中所用到的程序代码在windows98系统.visual c++6.0编译环境下通过. dll是建立在客户/服务器通信的概念上,包含若干函数.类或资源的库文件,函数与数据被存储在一个dll(服务器)上并由一个或多个客户导出而使用,这些客户可以是应用程序或者是其它的dll.dll库不同于静态库,在静态库情况下,函数与数据被编译进一个二进制文件(通常扩展名为*.lib),visual c++的编译器在处理程序代码时将从静态库中恢复这些函数与数据并把他们与应用程序中的其他模块组合在一起生成可执行文件.这个过程称为"静态链接",此时因为应用程序所需的全部内容都是从库中复制了出来,所以静态库本身并不需要与可执行文件一起发行. 在动态库的情况下,有两个文件,一个是引入库(.lib)文件,一个是dll文件,引入库文件包含被dll导出的函数的名称与位置,dll包含实际的函数与数据,应用程序使用lib文件链接到所需要使用的dll文件,库中的函数与数据并不复制到可执行文件中,因此在应用程序的可执行文件中,存放的不是被调用的函数代码,而是dll中所要调用的函数的内存地址,这样当一个或多个应用程序运行是再把程序代码与被调用的函数代码链接起来,从而节省了内存资源.... 下一页