如何打包ocx及有文件夹文件的cab包

1.首先将要打包的文件,建一个cab文件夹

2.cab文件夹内放上相应的ocx文件以及dll,并且要加入的文件夹及其文件。

3.在cab文件夹内,新建一个与ocx同名的inf安装配置文件

[version] 
signature="$CHICAGO$"
AdvancedINF=2.0

[DefaultInstall]
CopyFiles=FileList
RegisterOCXs=RegisterDll

[DefaultUninstall]
cleanup=1
Delfiles=FileList
UnRegisterOCXs=RegisterDll

[RegisterDll]
%11%\cos\HyPlayer.ocx

[DestinationDirs]
FileList=11,cos

[FileList]
HyPlayer.ocx
Nrcapc7.dll
VARender7.dll
VS_OEMPlugin\D00001_CREARO\AVCDecoder.dll
VS_OEMPlugin\D00001_CREARO\c7codec.dll
VS_OEMPlugin\D00001_CREARO\c7util.dll
VS_OEMPlugin\D00001_CREARO\CRPostproc.dll
VS_OEMPlugin\D00001_CREARO\d_shell.dll
VS_OEMPlugin\D00001_CREARO\D00001_VideoDec.dll
VS_OEMPlugin\D00001_CREARO\msvcp71d.dll
VS_OEMPlugin\D00001_CREARO\msvcr71d.dll
VS_OEMPlugin\D00001_CREARO\MSVCRTD.DLL

[VideoPlayer.ocx]
file-win32-x86=thiscab
clsid={F9EEF56B-97B1-4303-9825-C9CDE4127BD2} 
FileVersion=1,0,0,0
DestDir=%11%\cos
RegisterServer=yes

[Nrcapc7.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,0
DestDir=%11%\cos

[VARender7.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,0
DestDir=%11%\cos

[VS_OEMPlugin\D00001_CREARO\AVCDecoder.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,0
DestDir=%11%\cos\VS_OEMPlugin\D00001_CREARO

[VS_OEMPlugin\D00001_CREARO\c7codec.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,0
DestDir=%11%\cos\VS_OEMPlugin\D00001_CREARO

[VS_OEMPlugin\D00001_CREARO\c7util.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,0
DestDir=%11%\cos\VS_OEMPlugin\D00001_CREARO

[VS_OEMPlugin\D00001_CREARO\CRPostproc.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,0
DestDir=%11%\cos\VS_OEMPlugin\D00001_CREARO

[VS_OEMPlugin\D00001_CREARO\d_shell.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,0
DestDir=%11%\cos\VS_OEMPlugin\D00001_CREARO

[VS_OEMPlugin\D00001_CREARO\D00001_VideoDec.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,0
DestDir=%11%\cos\VS_OEMPlugin\D00001_CREARO

[VS_OEMPlugin\D00001_CREARO\msvcp71d.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,0
DestDir=%11%\cos\VS_OEMPlugin\D00001_CREARO

[VS_OEMPlugin\D00001_CREARO\msvcr71d.dll]
file-win32-x86=thiscab
FileVersion=1,0,0,0
DestDir=%11%\cos\VS_OEMPlugin\D00001_CREARO

[VS_OEMPlugin\D00001_CREARO\MSVCRTD.DLL]
file-win32-x86=thiscab
FileVersion=1,0,0,0
DestDir=%11%\cos\VS_OEMPlugin\D00001_CREARO

保存好此inf文件,然后右键,安装一下,最后看是不是c:\windows\system32有一个cos文件夹,此文件夹下还给新建了VS_OEMPlugin等子文件夹。。

上面的配置中 %11,表示的是C:\Windows\System32这个文件夹路径。如果其它文件要带文件,首先在声明文件时,加入相对路径,然后在section节([])中也用此相对路径指示即可。

4.将cab文件夹下的ocx进行数字签名

makecert -$ "individual" -r /sv "w.pvk" /n "CN=这里是公司名称" w.cer
cert2spc w.cer w.spc
signcode

依次运行上面3个dos命令,第一行是制作一个证书文件,里面设置好密码,简单点就用123456,第二行生成spc文件。最后一个是给文件加上数字签名。

5.在cab文件夹上一级,拷cabarc.exe,cabinet.dll这两个文件,进行打包。

打包时,先进入command模式,转到cab文件夹。然后输入

..\cabarc -r -p N ..\m.cab *

这样就在cabarc所在的位置,将cab文件夹下的打包成了cab。最后也将cab做一下数字签名。

6.测试,写一个 t.htm 文件,加入

<OBJECT
    id="viewocx"
      classid="clsid:F9EEF56B-97B1-4303-9825-C9CDE4127BD2"
      codebase="m.cab"
      width=640
      height=500
      align=center
      hspace=0
      vspace=0
>
    <param name="Server" value="113.105.181.197">
    <param name="Port" value="8866">
    <param name="DevId" value="151038403525119133">
    <param name="Channel" value="0">
</OBJECT>

7.将这个t.htm和m.cab拷到网页目录下,然后就可以试试了。

 

================================================================================

另外,Delphi7编写的ocx,是可以调试的。具体是在菜单->Run->Parameters指定:

Host Application : C:\Program Files (x86)\Internet Explorer\iexplore.exe (64位系统,要指向到32位的ie)

Parameters : D:\Work\Prog2018\d7_ocx\bin\test.htm

Working Directory:D:\Work\Prog2018\d7_ocx\bin\

但是,如果IE是8.0的版本,则要更改注册表。我用的11,是没有调试起来。

 

转载于:https://www.cnblogs.com/bigsong/p/9745384.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值