设为首页 | 收藏本站
首页>IT学院>操作系统>正文
Windows系统的活动大陆:细看DLL文件
WWW.DBIT.CN 2006-10-20 9:49:26 热度:
 

上面的例子中,搬运工A改进搬运方法,但EXE调用它的方法仍不变,这就是DLL升级的原理,改进了内部的实现方法,但调用接口不变,这样EXE文件不用跟着升级,就能调用新版本的DLL了。而搬运工B的故事说明,不管新版本的DLL效率多高,如果接口(可以理解为DLL中输出的函数名)与原来的不一致,那么EXE就不知道也无法调用它了。

2.登记身份证的DLL

在系统故障中,有很多都是由于DLL文件没有注册造成的,比如Windows XP的压缩文件夹功能出现故障就很有可能是系统目录中的zipfldr.dll没有注册造成的,这类故障的解决方法也大多是运行如下命令:

regsvr32 DLL文件名

很多人不理解为什么要这么做,是不是所有的DLL都能这样做呢?

其实系统中有两种DLL,一种是不需注册即可使用的,另一种则是必须经过系统登录(即注册)才能使用的。就好像一个临时工,和一个记录在员工名单上的长期合同工的区别一样。如何才能区分这两种DLL呢?方法很简单,用刚才的Depends打开这个DLL,同样是看函数输出表,如果其中包含以下两个函数(前者是注册DLL,后者是反注册DLL),那么就一定是需要注册才能使用的DLL了。

DllRegisterServer

DllUnregisterServer

而regsvr32这个命令,实际上就是调用DLL中的这两个函数(“regsvr32 /u DLL文件名”调用的即为DllUnregisterServer反注册函数)。

3.插件DLL的秘密

Winamp、Foobar 2000等很多软件都具有插件功能,从网上下载一个DLL放在插件目录下就能让程序支持新的功能,这是怎么做到的呢?就拿时下流行的播放软件“千千静听”来举例吧。

“千千静听”的插件目录在该软件安装目录下的Addin子目录下,程序的插件目录一般都会以“Plugins”、“Addin”来命名。在“千千静听”的插件目录中有许多DLL文件,比如tt_asf.dll、tt_rm.dll等,从文件名中就能看出这些DLL是用来让这个播放器支持各种不同类型的音频文件的。同样,用Depends打开这些文件,你就会发现这些文件的输出函数表中都包括一个同样的函数:ttpGetSoundAddIn(见图4)。

图4 千千静听所使用的插件协议

这就是插件的秘密,各种支持插件功能的程序在发布时,都会同时发布一份插件协议,协议中规定了该程序将要调用的插件DLL中必须包含的函数名称及相关的参数规则,然后第三方的插件程序员在编写这个程序的插件时就根据这个插件的标准来编写DLL的输出函数。

①对于插件tt_asf.dll

ttplayer.exe(“千千静听”主程序)对tt_asf.dll说:“我要调用你的ttpGetSoundAddIn函数!”

tt_asf.dll回答:“OK。”

②如果把不相关的DLL放进AddIn目录

ttplayer.exe对未知DLL说:“我要调用你的ttpGetSoundAddIn函数!”

tt_asf.dll回答:“那是什么函数?从来没听说过!”

本新闻共3页,当前在第3页  1  2  3  

 
上一篇:Windows中让文件顺畅打开的三则妙招
下一篇:解决winXP系统关机蓝屏问题
打印】【关闭
  相关文章:
·Windows系统超级技巧 批量更改文件·用组策略强化Windows系统的三大技
·十件傻事将使你的Windows系统不安·巧用Windows性能监控来监视FTP空间
·重新注册DLL 修复Windows操作系统·Windows任务管理器开发原理与实现
·隐藏Windows XP的16个窍门·让Windows XP急速关机
·神不知鬼不觉地置换Windows XP用户·PC之王的足迹 Windows十年简史
·Windows系统运行中的七大秘籍·Windows服务器:切断默认共享通道七
·Windows工作流活动技术概览·让Windows寻找文件不再迷茫
·给Windows目录加口令的特殊方法·浅析Windows特殊类型文件
☆联姻学院☆

保养电脑的26个窍门
文件夹删除不掉怎么办?
教你如何用手工迅速剿灭QQ广告
“熊猫烧香”病毒的病毒描述和
在Excel中只打印图表以外区域
Excel中只选中包含文本的单元
Windows XP操作系统的几个实用
用XP系统自带网络诊断程序解决
风雨雷电→自然现象动画实战技
Flash遮罩特效之百叶窗效果
十二个Dreamweaver鲜为人知的
如何用 Dreamweaver 批量做we
JavaScript的系统函数学习
Java之父:关于Java我也有遗憾
排除网上邻居使用4大常见麻烦
解除上网限制IP和MAC捆绑的破