dll hell的理解

第三方案
a.system32
b.E:/dll
c.当前工程的bin/com下面

a.system32(default,安装,没有约定)
b.约定,统一管理
c.约定,当前应程序程序,统一管理,上传,缺点:开发人员,不方便系统管理人员,com系统级的,同一个com,guid不可能注册两次,否则只有最后一次的才生效

为了统一,最后决定采用第二种解决方案
解决的问题点:
1.上传(/projects/lymdcTemp/dll/)
2.开发时的分发问题(E;/dll)
3.说明,e:/dll下需要说明

 

注册是动态注册,也可del,但如果是服务则不可以删除,因为在动态执行regsvr32.exe
将用的方式
set objwebpay=server.CreateObject("travelonline.webpay")
 set conn=server.createobject("ADODB.Connection")

都是从注册表中动态查找路径,然后调用该路径下dll中的方法

有时注册了新了com需要重启服务,原因是有cache,加速

注册表来记录dll的关联,

使用名称来进行调用,最好是使用clsid,这样才不会出错,
升级版本使用相同的CLSID,才导致dllhell,必须不向前兼容.

 

.net,应用程序自已的文件夹,公用的使用GAC文件夹,即使是使用GAC,都加多了一个版本信息,及安全信息公钥,
对于.net组件的GUID,是给com用的.
 
  COM通常建议同一个组件的升级版本使用相同的CLSID,   所以会有Dll   Hell。  
  .NET组件没有是因为使用编译器和CLR加强版本机制,强制加载编译期间使用的相关程序集。

 


DLL Hell  DLL地狱
  Windows系统是以Dynamic Link Library(动态链接库)的方式让系统和应用软件共用所有的系统文件的。
  DLL Hell的意思就是因为系统文件被覆盖而让整个系统像是掉进了地狱(什么软件都不能运行了)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值