荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Shining (小星星,眨眼睛...), 信区: Microsoft
标  题: 填平“DLL 陷阱”
发信站: BBS 荔园晨风站 (Fri Jun  9 22:42:24 2000), 转信

前言

    微软正在积极努力解决事关Windows稳定性的致命伤--“DLL陷阱”。这个问题
从Windows3.1起就一直困扰着微软和用户。微软在每一个Windows版本(包括最新
的Windows 2000和Windows Me)中都为解决这个问题做了新的调整,不过据介绍
2001年发布的Windows “Whistler”将会最终解决这一问题。上面所说的调整与解
决之道都是由在微软内部被称做“Fusion(融解)”的技术来完成的。虽然这项技
术从Windows 98就已经开始应用,但相信大多数人还没有听说过这个新东东。

什么是DLL陷阱

    “DLL 陷阱”是目前影响Windows系统稳定的一号杀手,凡是使用Windows系统
的用户都会有这样的感受:Windows自安装后,经过一段时间的使用以及不断地安
装各样各样的应用程序,整个系统一般都会变得越来越脆弱。这主要是由于当初微
软的设计理念---DLL共享数据库以及其他一些共享资源所造成的。在Windows设计
之初,微软的设计者们面临着让拥有较少系统资源的电脑能够实现多任务和图形界
面操作的难题,内存和磁盘空间都非常宝贵。设计者们必要解决的最基本一条就是
要尽可能地将有限的资源进行共享,这样可以避免应用程序把相同的内容重复调入
内存,从而达到节省内存的目的,同样,相同的内容也可以储存在磁盘的相同位置
用来节省磁盘空间。在当时这确实是一个非常精妙的好主意,不过随着Windows系
统越作越复杂,电脑硬件性能越来越强大,价格却越来越低,对于用户而言大容量
的内存和硬盘已经是唾手可得,此时共享DLL文件的意义似乎已经慢慢地变小。而
且更为重要的是:这些在以前曾经帮助过用户的技术开始越来越显露其不利的一面,因为它
们已经逐渐成为系统发
生问题的最主要根源之一。

你掉入这个陷阱了吗?

    我们可以这样认为,所有正在读这篇文章的朋友其实都已经落入了“DLL陷阱
”,不过你可能并没注意到这一点,比如:当你安装了若干个应用程序后,它们有
时会将系统最重要的DLL文件--COMCTRL32.DLL替换成了自己的版本。所以现在你的
电脑中的这个文件可能已经是最新版本,或者至少和当初安装系统时的不一样。这
样的后果是也许有一天你的某个应用程序拒绝再为你服务。当然有时还会更糟,因
为Windows也非常需要这个DLL文件,如果替换后的文件与Windows不配套,那么会
出现什么想来你一定会很清楚了?!可是这样的替换、覆盖就在我们平时不断地安
装应用程序时默默地在暗地里发生着。

微软将如何填平“DLL陷阱”

    微软其实也早就注意到了这个问题,为此也已经做了很多努力。在Windows98
的第二版中,微软第一次尝试了它的“Fusion”技术,也就是“side-by-side
DLLs”。不过令人遗憾的是它仅仅是有限的调整:允许应用程序选择或者覆盖或者
将共享的文件保存到一个特定的位置,每个文件只为特定的应用程序服务,这样所
有同名的DLL文件就可以共存并和睦相处了。这个办法要求应用程序制作者在开发
时要将DLL文件在程序安装时能够自动另存到其他目录考虑进去,由于这项功能只
有第二版的Windows 98才有,所以很少有哪位软件开发者会乐意用它。另外,在
Windows 2000和Windows Me中,都有类似的技术来防止系统的关键文件被覆盖。

    其实最值得我们等待的是下一代的“Fusion”技术--Fusion 2.0,它将在今后
的Visual Studio和Whistler中得到实现,并将在明年上半年和Visual Studio 7及
COM+ 2.0共同面世。到时相信所有的Windows用户都会喜出望外的

--
  剪短头发,清爽度夏--Shining

   那天,黄昏,开始飘起了白雪
   忧伤,开满山岗,等青春散场
   午夜的电影,写满古老的恋情
   黑暗中,为年轻歌唱......

※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.29.99]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店