Activex--ocx包装成cab全过程

一、         准备工作

开始前,需要准备好需要打包的ocx文件,以及这个ocx文件依赖的所有文件,包括dll文件、图片等等。比如,本人的ocx文件名是tot.ocx,依赖的文件是如下:

ConfigModule.dll=ConfigModule.dll

DllDeinterlace.dll=DllDeinterlace.dll

H264Play.dll=H264Play.dll

hi_h264dec_v.dll=hi_h264dec_v.dll

NetSdk.dll=NetSdk.dll

StreamReader.dll=StreamReader.dll

打包成cab文件还需要自己手写一个inf文件,这个文件是告诉以后下载cab文件的计算机,要解压哪些文件,怎么注册等等,我是手写的,没有找到自动生成的工具。INF文件是一个文本文件,指定运行控件所需要下载或者呈交的文件(比如DLL或者其它OCX)。一个INF文件就捆绑了CAB压缩文件所有的必须文件。这个文件其实主要是三个部分,第一部分是版本声明,第二部分是包含的文件,第三部分是声明下包含的文件存放的位置。Inf文件的详细内容可以参考以下网址:http://blog.163.com/netehoney@126/blog/static/46745953200771863335373/

 

本人的inf文件如下:

[version]

signature="$CHICAGO$"

AdvancedINF=1.0

 

[Add.Code]

tot.ocx=tot.ocx

ConfigModule.dll=ConfigModule.dll

DllDeinterlace.dll=DllDeinterlace.dll

H264Play.dll=H264Play.dll

hi_h264dec_v.dll=hi_h264dec_v.dll

NetSdk.dll=NetSdk.dll

StreamReader.dll=StreamReader.dll

 

[tot.ocx]

file-win32-x86=thiscab    

clsid={95D4CA58-7D68-4098-BD8D-3B9A6BE3DF0F}

RegisterServer=yes

FileVersion=1,0,0,0

 

[StreamReader.dll]

file-win32-x86=thiscab   

RegisterServer=no                        

DestDir=11

 

[NetSdk.dll]

file-win32-x86=thiscab   

RegisterServer=no                         

DestDir=11

 

[hi_h264dec_v.dll]

file-win32-x86=thiscab   

RegisterServer=no                       

DestDir=11

 

[H264Play.dll]

file-win32-x86=thiscab   

RegisterServer=no                        

DestDir=11

 

[DllDeinterlace.dll]

file-win32-x86=thiscab   

RegisterServer=no                        

DestDir=11

 

[ConfigModule.dll]

file-win32-x86=thiscab 

RegisterServer=no                        

DestDir=11

需要注意的地方是ocx控件的名称以及clsid的值要对应。用VS2008中MFC开发的ocx控件的clsid在.idl文件的最后几行,截图如下:

Inf文件搞定了的话,自己准备的文件就齐全了。本人的文件目录截图如下:

 

好了,接下来就需要准备下打包cab文件需要的各种工具了。

首先,到网上下载makeCAB工具,我已经打包放在网上了,里面是很多的exe工具。

CSDN下载目录:

http://download.csdn.net/detail/diaoliangwang/6659537

百度网盘:

http://pan.baidu.com/s/1d5C9z

文件目录如下:

把这些工具都下载好,准备工作就over了。

 

二、         打包CAB文件

1、          用Windows自带的iexpress先将你自己准备的各种文件进行打包,目录如下图:

win7命令行打开iexpress

 

接下来就是打包的过程了。

 

要注意把Strore files using选中,网上说不选的话发布会出错。没选中的我也没试过。大家可以尝试下吧。选中后,下一步。

选中Dont save,然后下一步。

然后会弹出dos窗口显示打包过程,打包完后会自动消失,成功后,弹出如下对话框。

这样的话打包过程搞定了一半,具体签名 密钥设置啊 这些 后面会继续!然后就要用下载的工具继续打包了。

其实这个时候就可以发布控件了,但是要降低IE浏览器的安全配置。

要注意,发布的时候要把后缀名改成小写cab。在html页面中用object调用的时候,

IE的具体配置如下:

由于本项目使用的ActiveX控件是自主研发,因此客户在访问是需要降低客户端IE浏览器的安全配置,否则浏览器将会阻止ActiveX控件的下载,导致无法播放视频和控制球机。

IE浏览器设置如下:

IE版本为IE8

添加信任站点

最后,请关闭浏览器,再次打开,进入网站。

正常情况下的话,浏览器会自动下载你的控件的。

posted on 2013-12-08 21:17  爱上珍珠的贝壳  阅读(885)  评论(0编辑  收藏  举报

导航