博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Activex--ocx包装成cab全过程
阅读量:7107 次
发布时间:2019-06-28

本文共 2111 字,大约阅读时间需要 7 分钟。

一、         准备工作

开始前,需要准备好需要打包的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文件的详细内容可以参考以下网址:

 

本人的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下载目录:

百度网盘:

文件目录如下:

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

 

二、         打包CAB文件

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

win7命令行打开iexpress

 

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

 

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

选中Dont save,然后下一步。

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

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

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

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

IE的具体配置如下:

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

IE浏览器设置如下:

IE版本为IE8

添加信任站点

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

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

转载于:https://www.cnblogs.com/ToTS0FTWARE/p/tot_ocx_developing.html

你可能感兴趣的文章
使用Envoy 作Sidecar Proxy的微服务模式-3.分布式追踪
查看>>
React
查看>>
以太坊客户端Ethereum Wallet与Geth区别简介
查看>>
Android-View进阶-事件分发机制原理
查看>>
音乐格式转换器哪个好
查看>>
Activity Monitor 闪退 & 无法进入睡眠
查看>>
Laravel - Auth验证流程以及guard守卫和自定义驱动driver驱动,使用web-token验证
查看>>
小程序 setData 学问多
查看>>
电脑不支持MOV怎么办 怎么快速将mov格式转换为MP4
查看>>
python爬虫的一些技巧
查看>>
The Way to TiDB 3.0 and Beyond (下篇)
查看>>
Prometheus 500 Internal Privoxy Error 异常解决
查看>>
CNCF宣布containerd毕业
查看>>
渲染机制/页面性能/错误监控
查看>>
304. Range Sum Query 2D - Immutable
查看>>
css多种方式实现等宽布局
查看>>
AWS EC2 实例磁盘空间扩容
查看>>
css多种方式实现等高布局
查看>>
使用 travis + gitbook + github pages 优雅地发布自己的书
查看>>
巧用flex布局实现左侧文字溢出省略,右侧文字自适应。
查看>>