首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

EXE缺少某些务须依赖的DLL也能运行

2013-01-18 
EXE缺少某些必须依赖的DLL也能运行?用view dependency查看exe程序的DLL依赖,msvcr80.dll这几项黄色问号,目

EXE缺少某些必须依赖的DLL也能运行?
用view dependency查看exe程序的DLL依赖,msvcr80.dll这几项黄色问号,目录下也的确是没有msvcp80.dll,msvcr80.dll之类的玩意,但是EXE还是能运行,请问为什么呢?我看了QQ2011也是这样子。机子也没装vs2005.
[解决办法]
可能是延迟加载的dll
[解决办法]

引用:
用view dependency查看exe程序的DLL依赖,msvcr80.dll这几项黄色问号,目录下也的确是没有msvcp80.dll,msvcr80.dll之类的玩意,但是EXE还是能运行,请问为什么呢?我看了QQ2011也是这样子。机子也没装vs2005.


 dll是被动态调用的,所以会被若干个程序共享使用的   但是如果dll在应用程序不知道的情况下升级了、或是被另一个程序更改了,就可能会出现问题,即"DLL   Hell"  
    
   随着系统资源越来越丰富,硬盘不那么紧张,所以在XP以后的操作系统中,用新的机制来管理DLL    
   (这种机制,这不仅仅是对于.NET而言,对于普通的Native程序也是一样的)    
    
   Madifest是个XML的描述文件,对于每个DLL有DLL的Manifest文件,对于每个应用程序Application也有自己的Manifest  
    
   对于应用程序而言,Manifest可以是一个和exe文件同一目录下的.manifest文件,也可以是作为一个资源嵌入在exe文件内部的(Embed   Manifest)    
    
   XP以前版本的windows,会像以前那样执行这个exe文件,寻找相应的dll,没有分别  
   Manifest只是个多余的文件或资源,dll文件会直接到system32的目录下查找,并且调用  
    
   而XP以后的操作系统,则会首先读取Manifest,获得exe文件需要调用的DLL列表  

热点排行