装配件和版本

Win32体系结构中当前有两个问题,被称之为DLL Hell。在DLL Hell中,没有控件实体负责安装到系统的所有DLL文件。关于COM DLL的信息保存在注册表中,这些信息会很容易地被别的应用程序改写。对于非COM DLL的DLL,在注册表中没有任何对应于它的项。应用程序的安装程序也可以改写已存在的DLL。这样做会严重破坏一些现有的应用程序,这些应用程序调用方法时依靠特定DLL执行具体的函数。

Win32有一个特殊的问题,即在组件间没有系统级的版本规则实现。这个问题只好依靠良好的编程习惯去解决,即一旦发布了接口,它就永远不能再改变了——但在操作系统中又没有什么可以明确预防这一点。另一个问题是应用程序没有一个通用的方式来说明它需要特定组件的版本。只好由开发人员在将DLL调入应用程序前对DLL版本进行检验。如果没有进行检验,应用程序发现了不同的版本,那么它所依靠的代码可能已不存在了,或者说它可能不执行应用程序所期望的函数。为了改变这些情况,windows添加了系统文件保护。这是一个OS功能,能够防止任何的安装程序改写任何系统DLL。

«1»