手机
当前位置:查字典教程网 >网页设计 >应用技巧 >浅析ActiveX控件的CAB压缩
浅析ActiveX控件的CAB压缩
摘要:浅析ActiveX控件的CAB压缩任凤华摘要本文简单介绍了CAB压缩,以及使用WinCAB将ActiveX控件压缩为CAB文件的具体步骤。关...

浅析ActiveX控件的CAB压缩

任凤华

摘要本文简单介绍了CAB压缩,以及使用WinCAB将ActiveX控件压缩为CAB文件的具体步骤。

关键词ActiveX控件;CAB压缩;WinCAB;INF文件

1.引言

ActiveX控件技术是从OLE基础上发展起来的,是将OLE进行了扩展从而使其适应Intern

et、Intranet、商业应用程序等的开发。当ActiveX控件的程序代码在Internet上传输时,使用压缩技术传输程序代码变得非常有意义。

从另一方面来看,如果ActiveX控件还调用到其他的DLL程序模块,那么IE也必须把这些程序下载到本地来。为此,Microsoft采用了惯用的CAB压缩方法,它把ActiveX控件应用程序以及相关的其他文件放在同一个CAB文件中,然后在CODEBASE属性中指定CAB文件的URL路径。当IE找到CODEBASE属性时,它会自动解析URL地址从而把CAB文件解压到客户机的临时目录,然后注册有关文件,调用COMAPI函数创建ActiveX控件对象。这样就完成了ActiveX控件的传输。

2.CAB压缩技术简介

微软公司在发行Windows95、Plus!95等软件时

采用了一种全新的CAB压缩包形式,它具有压缩率高、安全性好、不易受到破坏等优点,深受广大用户及软件制作商的欢迎。许多用户甚至因此希望将自己的数据文件改用CAB压缩包的形式加以压缩、备份,以尽可能的减少备份文件所占用的磁盘空间,并提高它们的安全性。目前制作CAB文件的软件有主要有Cabarc和WinCAB。

Cabarc是一个用于压缩、列出压缩包中的文件、解压CAB文件的工具。Cabarc支持通配符和递归路径搜索。不过Cabarc使用一个类似于常用的压缩工具的命令行界面,

并且有较多的参数,与现在主流的Windows操作系统不太协调,使用起来不是很方便。

而WinCAB是一种可视化的全新的CAB压缩包制作软件,它具有采用图形界面、支持分卷压缩、可制作具有自解包功能的CAB压缩包(*.EXE文件格式)等优秀功能,这就从根本上解决了CAB压缩包的制作问题。需要注意的是在运行WinCAB.exe时,必须确保makecab.exe文件也在相同的目录下。

本文就以WinCAB为例来介绍ActiveX控件的CAB文件的制作过程。

3.将ActiveX控件压缩成CAB文件

主要步骤有:

1)注册YourCtl.ocx控件。

2)建立YourCtl.inf文件。

INF文件的格式如下:(在使用VisualC++6.0的情况下)

[version]

signature="$CHICAGO$"

AdvancedINF=2.0

[Add.Code]

YourCtl.ocx=YourCtl.ocx

mfc42.dll=mfc42.dll

msvcrt.dll=msvcrt.dll

olepro32.dll=olepro32.dll

[YourCtl.ocx]

file-win32-x86=thiscab

clsid={YourCtl.ocx的CLSID}//在YourCtl.odl文件中可以找到

FileVersion=1,0,0,1

RegisterServer=yes

[msvcrt.dll]

FileVersion=6,0,8168,0

hook=mfc42installer

[mfc42.dll]

FileVersion=6,0,8168,0

hook=mfc42installer

[olepro32.dll]

FileVersion=5,0,4261,0

hook=mfc42installer

[mfc42installer]

file-win32-x86=VALUE=aaaaaaaaaaactivex.microsoft.com/controls/vc/mfc42.cab

run=%EXTRACT_DIR%mfc42.exe

这里需要说明的是上述msvcrt.dll、mfc42.dll、olepro32.dll的FileVersion是根据VC不同的版本而异的,例如在VC5.0sp3中就应该如下

olepro32.dll5,0,4230,1

mfc42.dll4,21,0,7303

msvcrt.dll5,0,0,7303

每个VC版本都有不同的版本号,这里只介绍常见的两种。另外mfc42installer的下载路径除了VC4.1和更早版本使用aaaaaaaaaaactivex.microsoft.com/controls/vc/mfc40.cab外,其他版本都使用aaaaaaaaaaactivex.microsoft.com/controls/vc/mfc42.cab。

3)启动WinCAB开始压缩。(其中注意Makecab.exe要在WinCAB目录下)

i)启动WinCAB,然后执行“Cabinet”菜单的“New”命令或单击快捷工具栏上的“Newcabinet”按钮,准备制作新的CAB压缩包。

ii)单击快捷工具栏上的“Addfile(s)tocabinet”按钮,打开“Addfile(s)tocabinet”对话框。

iii)选择欲添加到CAB压缩包中的文件后单击“打开”按钮,将它们添加到WinCAB的文件列表中。这里只需要添加YourCtl.ocx和YourCtl.inf两个文件。

iv)在WinCAB快捷工具栏的“Cabinetpathandname”框中输入或利用“Browseforpathandname”按钮指定CAB压缩包的路径及文件名。

v)在“Cabinetsize”栏中指定CAB压缩包的尺寸。

vi)在“Compressionmethod”框中选择合适的压缩方式。

vii)单击“Savecabinet”按钮,WinCAB即会按照用户的要求进行压缩。

viii)压缩完成后,WinCAB会给出一个“WinCABReport”的报告框,向广大用户报告有关文件个数、压缩前后的文件尺寸、压缩率、压缩时间等情况。至此,一个CAB文件就生成了。

4.结束语

由于CAB的压缩率比我们常用的ARJ、ZIP、RAR等压缩包要高许多(约20%),从而进一步的减少了压缩文件所占用的磁盘空间,当采用该技术在Internet上传输ActiveX控件时既减少了网络流量,也加快了网页打开的速度。

另外,由于CAB压缩包具有“只读”属性,在创建完成后即不允许再作任何修改、删除,因此不易受到病毒、误操作等问题的影响,安全性也具有保证,实为广大用户在Windows下进行文件的压缩、备份工作时的最佳选择。

注:**基金项目**,国家973计划,(编号:G1998030600)。

参考文献

[1].潘爱民.COM原理与应用[M].北京:清华大学出版社,1999.

[2].PackagingActiveXControls.aaaaaaaaaasupport.microsoft.com,2003.

【浅析ActiveX控件的CAB压缩】相关文章:

用智能abc的朋友进来看看,怎么为它提速

小技巧:把你的文件藏在图片里

浅谈Web下的即时寻呼技术

浏览器 cookie 限制

解析导致局域网网速变慢的五大真凶

EditPlus 2.12 使用技巧集萃

检查电脑是否被安装木马的三个小命令

电脑重启后突然检测不到硬盘的原因分析与解决办法

上海居住证办理 续办上海居住证全攻略

键盘操作优势 IE7快捷键集锦

精品推荐
分类导航