• VS2008 ACtivex 制作CAB带 Vcredist_x86.exe 方案


    自己写的 OCX或 ACTIVEX需要注册,如果是VS05或VS08开发的,还需要安装相应 的发行包才行
    比如;08就需要安装 vcredist08.exe(08); 这个在微软上找或自己的VS安装包中也可以找到

    来说说关键的要点;用CAB

    需要把我们的开发的OCX和相关DLL打到CAB,同时还要确保客户机上安装 vcredist.exe否则,即使控件安装上了也使用不了的
    CAB工具下载http://download.microsoft.com/download/platformsdk/cab/2.0/w98nt42kmexp/en-us/cabsdk.exe
    下载后解压到C:\CAB, 然后进CMD, 切换当前路径为 c:\CAB ,操作见下吧

    1, cabarc.exe -s 6144 N X.CAB X.ocx X.inf A.dll
    意思是: -s 设置大小,6144表示64K, 这个不管它吧
    N 表示要创建一个CAB包;
    X.CAB 就是生成 的CAB包文件名了
    X.OCX即我们的开发的控件文件名了,
    X.inf 就是CAB的安装内容,这个有麻烦,放后面说它
    A.dll就是我们的控件需要用到的DLL文件,如果有其它的还需要也加在,在后面加空格
    一 一加上吧;

    2、X.inf 内容
    ;//下面这三行,照抄就行,主要是版本信息,非特殊不要更改,直接照写就行
    [version]
    signature="$CHICAGO$"
    AdvancedINF=2.0

    ;//这就是要安装的文件了,包括控件和相关文件
    [Add.Code]
    X.OCX = X.OCX
    A.DLL = A.DLL
    ;//上面两个是控件所用的

    ;//下面这行是另外增加的,主要是安装VC发行包(vcredist_x86.exe就是发行包的安装名,见后)
    vcredist_x86.exe=vcredist_x86.exe

    [X.OCX]
    ;//指定O.ocx 是从CAB包里获取
    file-win32-x86=thiscab

    ;//x.ocx 的CLASSID信息
    clsid={1D73A88F-8621-498F-B7CD-F6485620F3AA}

    ;//x.ocx文件版本; (就是文件属性里面那个文件版本号)
    FileVersion=1,0,0,1

    ;//是否为自动注册,一般都是需要注册的哟
    RegisterServer=yes

    [A.DLL]
    file-win32-x86=thiscab
    ;同上了,也可加上版信息
    ;//
    FileVersion = 1,1,1,1



    ;//这里注意了,发行包安装的信息
    [vcredist_x86.exe]
    fileVersion=9,0,30729,17
    hook=InstallerHook
    ;//这项并没有设置file-win32-x86的值,因为它并不在CAB里面,这里设置了一HOOK,让HOOK
    ;//来处理


    //发行包的安装来源
    [InstallerHook]
    ;//这里安装默认是在同X.CAB的目录,如果是在网站,可以更改为URL路径
    ;//如:http://www.x.com/vcredist.cab

    file-win32-x86=VCredist.CAB

    ;//这里就是让CAB自动解压过后,运行CAB包里面的 vcredist_x86.exe
    run=%EXTRACT_DIR%\vcredist_x86.exe

    配置完毕

    这里需要两个CAB,一个是我们的控件 X.cab 另一个是发行包的 VCRedist.CAB 里面只有一个文件 vcredist_x86.cab

    ( cabarc.exe N VCRedist.cab vcredist_x86.exe ) 运行此命令需设置全路径或切换vcredist_x86.exe所在目录再运行命令

    好了,在网页里面,设置控件的 codebase="X.CAB" 安装时会自动下载 vcredist.cab并且安装,但这个是有界面操作的,就是安装的时候需要用户点下一步什么的,并不是安静安装模式。。


    另参见MSDN:http://msdn.microsoft.com/en-us/library/aa751974%28VS.85%29.aspx#cabdl

    微软的CAB包制作方法:

    http://msdn.microsoft.com/en-us/library/aa751974%28VS.85%29.aspx#cabdl

  • 相关阅读:
    读取目录中文件名的方法 C++
    std::string::compare() in C++
    std::string::erase in C++ 之 erase()方法截取string的前几位、后几位
    Source Insight 破解
    bib+windows+word=bibtex4word插件使用方法
    7K7K小游戏
    Linux+Gurobi-python调用
    使用位运算替代模运算,为了高效做模除最好选择mod除(2^n)
    windows+VS2019+gurobi解决方案配置
    The plagiarism
  • 原文地址:https://www.cnblogs.com/memaxiaofeng/p/3275498.html
Copyright © 2020-2023  润新知