通行证:用 户 密 码 注册 www.pconline.cn 汽车网 游戏网 时尚女性
  太平洋电脑网
首  页
产品库
今日报价 产业资讯
评 测 室 数码世界
软 件 下 载 摄 影 论 坛 
游 戏 二 手 视 频 通 信 图 库
渠道商情 企业频道 招聘培训
网络设备 办公设备 服 务 器
CPU/内显示器主板显卡
存储设备打印机外设MP4 
diy
DIY硬件
手机
手 机
笔记本
笔记本
台式机
台式机
数码相机
数码相机
随身听
随身听
摄像机
摄像机
数字家庭
数字家庭
精品廊
精品廊
全国行情:北京 上海 广州 深圳 香港 广西 重庆 山东 江苏 辽宁 福建 成都 西安
 
 
   
首页 | 新闻 | 应用 | 评测 | 教你学电脑 | 信息安全 | 创意设计 | 开发特区 | 下载 | 专题 | 社区
 
 特色专区:QQ大本营 | Vista专区 | msn总动员 | 组网专栏 | 设计素材 | Flash剧场 | Photoshop | 视频专栏 | 热门软件 | KC通讯
 
您现在的位置: 软件资讯 > 软件应用 > 操作系统 > WindowsXP
Windows的活动大陆:细看DLL文件
作者:狂ρκ 责任编辑:caihao

  很多人不理解为什么要这么做,是不是所有的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回答:“那是什么函数?从来没听说过!”

文 章 导 航 条
1.初窥门径:Windows的基石
2.求知若渴:探究DLL的真相
3.DLL文件名 可以判断出的EXE信息
4.刨根问底:DLL的寓言
[上一页] [1] [2] [3] [4]
  下一篇:系统档案:亦真亦假的Svchost.exe  
更多相关搜索: dll    动态链接库    Windows系统   
正在加载评论,请稍候…

  发给好友 我要报错 投稿给我们 加入收藏 返回顶部  

本栏今日更新
相关文章
·新闻一周谈:Google自毁形象,得不偿失
·微软下战书:邀请黑客测试攻破Vista
·修复高危漏洞!微软八月将释放12个补丁
·MSN Shell:让你的MSN更精彩
·MSN个人空间应用技巧五则
·表情[卡通]:晴天娃娃
·官方视频教程演示 3DS Max 9 新特性
·因为你高兴所以我快乐啦
·安全专家发现Windows系统Wi-Fi功能漏洞
·VC++动态链接库(DLL)编程深入浅出(四)
·VC++动态链接库(DLL)编程深入浅出(三)
·VC++动态链接库(DLL)编程深入浅出(二)
·VC++动态链接库(DLL)编程深入浅出(一)
·用VB将ASP代码封装成DLL
·手把手教delphi:写你的dll文件(2)
·手把手教delphi:写你的dll文件(1)
关于我们 | 网站地图 | 广告指南 | 联系我们 | 招聘精英 | 合作联系


广东省通信管理局
ICP证粤B2-20040647
互联网清理整顿
技术支持与报障:support@pconline.com.cn
        020-87568837         
对本站有任何建议、意见或投诉,请点这里在线提交.
本网站简体、繁体两种版本,以简体版为准
PConline版权所有,未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任__