zoukankan      html  css  js  c++  java
  • activeX 打包

    原文 http://www.docin.com/p-409284488.html

    CAB打包文档说明

     

    1. 文档目的

    本文档的目的在于说明将ocx和dll以及相关的文件打包成一个CAB包,以便在网页下调用ocx控件时免去手工将dll和其他一下文件拷贝到客户机,方便了现场施工。

     

    1. 打包工具

    打包工具有makeCAB

    其中,ActvxDoc.exe用来查看ocx的CLSID,signcode.exe用来对打包好的cab进行数字签名,其它的用于生成数字认证文件。

     

    1. 打包过程
    2. 将打包工具makeCAB里面的所有文件放到系统文件夹system32目录下
    3. 新建一个文件夹,将所有要打包进cab的文件放在该新建的文件夹下
    4. 编写inf安装文件。新建一个txt文本文档,并将其改名为*.inf安装文件,按照以下格式编写inf文件。(打包时注意去除红色的字)

    [version]

    signature="$CHINA$"

    AdvancedINF=1.0

     

    [Add.Code]             --该段为所打包的文件

    logocx.ocx=logocx.ocx

    MFC42D.DLL=MFC42D.DLL

    MFCO42D.DLL=MFCO42D.DLL

    MSVCP60D.DLL=MSVCP60D.DLL

    MSVCRTD.DLL=MSVCRTD.DLL

    pssts.ini=pssts.ini

     

    [logocx.ocx]            --打包的ocx

    file=thiscab

    clsid={5710EB41-87CE-4BF8-9A24-F520556714BB}   --ocx的序列号

    FileVersion=1,0,0,1

    RegisterServer=yes

     

    --以下是其他的相关文件

    [MFC42D.DLL]

    file-win32-x86=thiscab   

    RegisterServer=no    

    DestDir=11                --存放目录为system32

    FileVersion=7,10,3052,4 

     

    [MFCO42D.DLL]

    file-win32-x86=thiscab   

    RegisterServer=no   

    DestDir=11  

    FileVersion=7,10,3052,4 

     

    [MSVCP60D.DLL]

    file-win32-x86=thiscab   

    RegisterServer=no   

    DestDir=11  

    FileVersion=7,10,3052,4 

     

    [MSVCRTD.DLL]

    file-win32-x86=thiscab   

    RegisterServer=no   

    DestDir=11  

    FileVersion=7,10,3052,4 

     

    [pssts.ini]

    file-win32-x86=thiscab

    DestDir=11

    1. 编写运行的bat文件。新建一个txt文本文档,并将其改名为*.bat运行文件,按照以下格式编写bat文件。(打包时注意去除红色的字)

    --生成数字签名文件*.pvk

    --logocx是文件路径

    makecert -sk logocx logocx.pvk -n CN=迪科电力

    --生成数字签名文件*.cer

    makecert -sk logocx.pvk logocx.cer

    --生成数字签名文件*.spc

    cert2spc logocx.cer logocx.spc

    --打包cab文件,其中【MFC42D.DLL MFCO42D.DLL MSVCP60D.DLL MSVCRTD.DLL pssts.ini logocx.ocx logocx.inf】为要打包进cab中的文件,注意要包含上一步编写的inf文件

    cabarc -s 6144 n logocx.cab MFC42D.DLL MFCO42D.DLL MSVCP60D.DLL MSVCRTD.DLL pssts.ini logocx.ocx logocx.inf

    --运行数字签名程序

    signcode.exe

    1. 运行编写好的bat文件。

    将所有需要打包的文件和上两步编写好的inf、bat放在同一个目录下,双击bat文件运行,首先生成数字签名所需要的pvk、cer、spc文件,然后打包成cab,最后运行signcode.exe程序进行数字签名。(以上步骤为双击bat文件后自动生成的)

    signcode界面中,

    点击【下一步】,点击【浏览(R)…】,更改文件类型为*.cab,选中刚生成的cab文件,点击【打开】,然后点击【下一步】,

    选择【自定义】,然后点击【下一步】,

    点击【从文件选择】,打开刚才生成的cer文件,点击【下一步】

    首先选择【磁盘上的私钥文件】,点击浏览选择刚才生成的PVK文件,然后选择【CSP中的私钥】,在【密钥容器】中选择*.pvk(为刚才选择的pvk),点击【下一步】。

    选中【sha1】,然后点击【下一步】

    选中【包括在以下PKCS#7(.p7b)文件中的证书(P)】,点击浏览,选择刚才生成的spc文件,点击【下一步】

    然后一直点击【下一步】直到数字签名完成。

    1. 版本控制

    .cab包进行版本更新,使用户能够打开浏览器时自动下载更新.cab包,需进行如下处理。

    1. ocx控件的版本进行更新。方法如下:打开源代码,找到资源文件,修改版本信息,如下图:

    修改后重新生成ocx文件。

    1. 对打包时的.inf文件中ocx中的版本信息进行更新,举例如下:

    [logocx.ocx]            --打包的ocx

    file=thiscab

    clsid={5710EB41-87CE-4BF8-9A24-F520556714BB}   --ocx的序列号

    FileVersion=1,0,0,1

    RegisterServer=yes

    修改FileVersion=1,0,0,3

     

    1. 页面加载控件时添加版本信息,如下列红色字体所示:<object id="slipprint" style="display:none" width=30 height=30 classid="CLSID: 5710EB41-87CE-4BF8-9A24-F520556714BB" codebase="../activeX/DicEPSON532.cab#version=1,0,0,3">

     

     

    1. 注意事项

    虽然已对打包好的cab进行了数字签名,但是该签名并未在网上注册,在客户端仍然需要设为信任站点。

    6.如果安装不成功可以安装 depends 看看你的插件缺少什么dll,自行去补充

    重要提示

     

    平台工具集 Visual Studio 2013 - Windows XP (v120_xp)

    relase 编译 多线程 选mt

    所在的“项目”=>>“属性”=>>“配置属性”=>>“C/C++”=>>“预处理器”=>>“预处理定义” 移除_DENUG

  • 相关阅读:
    士兵队列训练问题http://acm.hdu.edu.cn/showproblem.php?pid=1276
    Fence Repair http://poj.org/problem?id=3253
    A/B http://acm.hdu.edu.cn/showproblem.php?pid=1576
    房间安排http://acm.nyist.net/JudgeOnline/problem.php?pid=168
    Function Run Fun http://poj.org/problem?id=1579
    盗梦空间http://acm.nyist.net/JudgeOnline/problem.php?pid=125
    如何在Chrome中使用”并非来自Chrome网上应用店”的扩展程序
    C++中的函数指针模板
    C/C++中的源文件与头文件的区别
    C++同名函数的各种问题
  • 原文地址:https://www.cnblogs.com/weiwin/p/4493835.html
Copyright © 2011-2022 走看看