解决方案 »

  1.   

    以前做过cab打包,看看我资源的打包工具吧,说明挺详细的。猜测应该是配置注册的文件问题,如果ocx本身可以注册的话。
      

  2.   

    你直接把cab包在同事电脑上解压,然后用regsvr32 手动注册看能成功不,如果不能成功就看是不是缺少依赖的DLL或者是win7 vista的权限不够.如果注册能成功,你就看IE的安全设置选项.
      

  3.   

    恩,可以!我测试的时候就是本机手动注册,用MFC调的.使用时正常
      

  4.   

    手动能注册上,这个CAB不是自动安装的吗?  我的问题是 : 打开网页后发现控件没有注册
      

  5.   

    给一个我的,这个是可用的,没用MFC的dll是用静态的lib
    [Version]
    signature="$CHICAGO$"
    AdvancedINF=2.0[DefaultInstall]
    CopyFiles=FileList
    RegisterOCXs=RegisterDLL[DestinationDirs]
    FileList=30,\Program Files\webvideo[FileList]
    web-video.ocx=web-video.ocx
    cmsHcApi.dll=cmsHcApi.dll
    cmsAlarm.dll=cmsAlarm.dll
    cmsDisp.dll=cmsDisp.dll
    cmsDdx.dll=cmsDdx.dll
    cmsDecoder.dll=cmsDecoder.dll
    cmsNet.dll=cmsNet.dll
    cmsUtil.dll=cmsUtil.dll
    cmsFontSmall.dll=cmsFontSmall.dll
    cmsH264Dec.dll=cmsH264Dec.dll
    NewMenuConfig.dll=NewMenuConfig.dll[web-video.ocx]
    file-win32-x86=thiscab
    clsid={fe7d5a0f-4e25-41b1-8a99-3d9d58f400d2}
    FileVersion=1,0,0,33
    DestDir=30,\Program Files\webvideo
    RegisterServer=yes[cmsHcApi.dll]
    file-win32-x86=thiscab
    FileVersion=1,0,16,10
    DestDir=30,\Program Files\webvideo[cmsAlarm.dll]
    file-win32-x86=thiscab
    FileVersion=1,0,0,3
    DestDir=30,\Program Files\webvideo[cmsDisp.dll]
    file-win32-x86=thiscab
    FileVersion=1,0,13,8
    DestDir=30,\Program Files\webvideo[cmsDdx.dll]
    file-win32-x86=thiscab
    FileVersion=1,0,1,18
    DestDir=30,\Program Files\webvideo[cmsDecoder.dll]
    file-win32-x86=thiscab
    FileVersion=1,0,4,10
    DestDir=30,\Program Files\webvideo[cmsNet.dll]
    file-win32-x86=thiscab
    FileVersion=1,0,8,18
    DestDir=30,\Program Files\webvideo[cmsUtil.dll]
    file-win32-x86=thiscab
    FileVersion=1,0,1,0
    DestDir=30,\Program Files\webvideo[cmsFontSmall.dll]
    file-win32-x86=thiscab
    FileVersion=1,0,0,1
    DestDir=30,\Program Files\webvideo[cmsH264Dec.dll]
    file-win32-x86=thiscab
    FileVersion=2,1,0,3
    DestDir=30,\Program Files\webvideo[NewMenuConfig.dll]
    file-win32-x86=thiscab
    FileVersion=1,0,1,10
    DestDir=30,\Program Files\webvideo
    [RegisterDLL]
    %30%\Program Files\webvideo\web-video.ocx
      

  6.   

    我写的那个INF都没有拷贝文件到System32文件夹下
      

  7.   

    应该是你的DLL和OCX顺序有关系,这个是按照依赖关系排列的你的OCX放在最后一个,这个应该是放在最前面的,你要检查下他们的依赖关系!CAB包通过网页访问,这个INF文件不会下载到本地的
      

  8.   

    我估计应该 是 msvcr100.dll、mfc100.dll 等这些dll 在一些电脑注册失败导致的。
      

  9.   

    可能我没说清楚吧,假设打包的有三个文件,A.ocx b.dll c.dll
    A需要调用B 而B需要调用C
    那么你在下面节点中的顺序必须如下所示
     [Add.Code]A.ocx=A.ocx
    B.dll=B.dll
    C.dll=C.dll而不能够将顺序给颠倒了,要不然会出现问题,解压CAB中文件的时候会不完全,导致注册不成功,因为没找到相依赖的DLL
      

  10.   

    回答的真详细,这下我彻底明白了! INF文件我完全搞反了!
      

  11.   

    在本地执行INF,发现文件被考到System32文件夹下了,但是控件还是没有注册
      

  12.   

    你用Depends打开OCX看有没有缺少依赖的DLL
      

  13.   

    是不是还要关联一个注册用的BAT文件?
      

  14.   

    顺序反了,Install时顺序反一下就好了
      

  15.   

    没有,我打了一个EXE包让用户下的,然后安装
      

  16.   

    我也遇到类似的问题,把浏览器安全级别设置了最低,activex也都启用了,但是还不行。页面提示安装了控件,而且注册表注册了。但是还是调用不到OCX里的方法。也去做了签名。唉。蛋疼
      

  17.   

    64位怎么打cab哈,晕了
    file-win32-x86=thiscab 改为file-win32-x64=thiscab ???
      

  18.   

    DestDir=30,\Program Files\webvideo这个是啥意思???可以把文件解压到指定的目录??
    大神求解。。
      

  19.   

    时隔一年多~     有人解决了吗 64的cab打包  、、、、没法安装啊!情况跟前面描述雷同
      

  20.   

    我在win7 64位下尝试了好久,终于打cab包成功了。真是太不容易了。