dll转移-转载

简介: 20.6 DLL转移 Windows 98不支持D L L转移。 当Wi n d o w s刚刚开发成功时,R A M和磁盘空间是非常宝贵的。因此Wi n d o w s在设计时总是尽可能多地安排资源的共享,以节省宝贵的存储器资源。
20.6 DLL转移


Windows 98不支持D L L转移。



当Wi n d o w
s刚刚开发成功时,R A M和磁盘空间是非常宝贵的。因此Wi n d o w
s在设计时总是尽可能多地安排资源的共享,以节省宝贵的存储器资源。为了达到这个目的, M i c r o s o f
t建议,多个应用程序共享的任何模块,如C / C + +运行期库和M i c r o s o f t基础类(M F C)D L
L等,应该放入Wi n d o w s的系统目录中。这样,系统就能够方便地找到共享文件。



随着时间的推移,这变成一个非
常严重的问题,因为安装程序会用旧文件或尚未完全实现向后兼容的新文件来改写该目录中的文件。这将使用户的其他应用程序无法正确地运行。今天,硬盘的容量
已经非常大,并且很便宜, R A M的容量也相当富裕,价格也便宜了一些。因此,M i c r o s o f
t改变了原先的开发策略,非常支持你将应用程序的所有文件放入它们自己的目录中,而不要去碰Wi n d o w
s的系统目录中的任何东西。这样,你的应用程序就不会损坏别的应用程序,别的应用程序也不会损坏你的应用程序。



为了给你提供相应的帮助,M i c r o s o f t给Windows 2000增加了一个D L L转移特性。这个特性能够强制操作系统的加载程序首先从你的应用程序目录中加载文件模块。只有当加载程序无法在应用程序目录中找到该文件时,它才搜索其他目录。



为了强制加载程序总是首先查找应用程序的目录,要做的工作就是在应用程序的目录中放入一个文件。该文件的内容可以忽略,但是该文件必须称为A p p N a m e . l o c a l。



例如,如果有一个可执行文件的名字是S u p e r A p p . e x e ,那么转移文件必须称为S u p e r A p p . e x e . l o c a l。



在系统内部, L o a d
L i b r a r y ( E x
)已经被修改,以便查看是否存在该文件。如果应用程序的目录中存在该文件,该目录中的模块就已经被加载。如果应用程序的目录中不存在这个模块,L o a
d L i b r a r y ( E x )将正常运行。



对于已经注册的C O M对象来说,这个特性是非常有用的。它使应用程序能够将它的C O M对象D L L放入自己的目录,这样,注册了相同C O M对象的其他应用程序就无法干扰你的操作。

目录
相关文章
|
5月前
|
C++ Windows
msvcr120.dll丢失的解决方法
msvcr120.dll丢失的解决方法
Win10系统msvcr120.dll丢失解决
Win10系统msvcr120.dll丢失解决
C# 访问 C DLL
C# 访问 C DLL
84 0
|
NoSQL MongoDB Windows
无法启动此程序,因为计算机丢失MSVCP140.dll
无法启动此程序,因为计算机丢失MSVCP140.dll
412 0
无法启动此程序,因为计算机丢失MSVCP140.dll
|
Windows
模块 DLL usrresol.dll 未能加载
IIS应用程序池自动关闭,模块DLL C:\windows\system32\inetsrv\urlresol.dll 未能加载
566 0
模块 DLL usrresol.dll 未能加载
|
C#
[C#]使用Costura.Fody将源DLL合并到目标EXE
原文:[C#]使用Costura.Fody将源DLL合并到目标EXE   本文为原创文章,如转载,请在网页明显位置标明原文名称、作者及网址,谢谢! 一、本文主要是使用Costura.Fody工具将源DLL合并到目标EXE,因此,需要从以下任一链接下载: ①从Github地址下载: https://github.
3085 0
|
存储 C# C++
VS2005环境下的DLL应用
VS2005环境下的DLL应用 作者:一点一滴的Beer http://beer.cnblogs.com/     以前写过一篇题为《VC++的DLL应用(含Demo演示)》的文章,当时是刚开始接触DLL,而且所讲到的一些DLL的应用都是比较浅层次的数据传递,基本不具备很强的实用性,而且所选用的开发环境是VC6.0,这次因为做做WinCE开发的过程中需要用到这个技术,所以进行了比较深入的研究,而且此次用的是VS2005开发环境,对比VC6.0的一些操作略有不同,所以重新进行了整理。
1172 0