在自己的机器上调试没有问题,将它封装成CAB然后调用则不成功,看了下没有注册.....
这个应该是什么原因....
inf文件
[Version]
signature="$CHICAGO$"
AdvancedINF=2.0[Add.Code]
GetHDW.dll=GetHDW.dll
JSActi.dll = JSActi.dll[GetHDW.dll]
file-win32-x86=thiscab
DestDir=11
FileVersion=1,0,0,1 [JSActi.dll]
file-win32-x86=thiscab
RegisterServer=yes
CLSID={16E4C5A0-D155-4A20-8A1A-B454487EA977}
FileVersion=1,0,0,1
DestDir = 11
[RegisterFiles] 
%11%\JSActi.dll

解决方案 »

  1.   

    还有MFC AxtiveX 生成的是ocx 文件 而ATL生成的是DLL,我是用ATL在网上搜了下说将DLL后缀名改成ocx就是ocx 文件 这个有关系么?
      

  2.   

    一般CAB需要签名 你把IE权限改成不签名也可运行 试试
      

  3.   

    2个文件的话比较麻烦
    ocx放那里都行,依赖的dll得放到system32目录。
      

  4.   

    可以在HTML里直接调用CAB文件么....
    <object id=HY_JSActiveX1 height='0' width='0' style='LEFT: 0px; TOP: 0px'  classid='CLSID:16E4C5A0-D155-4A20-8A1A-B454487EA977' codebase='../JSActi.CAB#V1,0,0,0'>
    <param name='_ExtentX' value='6350'><param name='_ExtentY' value='6350'>
    </OBJECT>也就是说:在一台机器上给你一个HTML文件和一个CAB,这样可以调么?
      

  5.   

    可以直接调,flash就是这样的。
      

  6.   

    但是我为什么调用不成功了?
    如过将CAB解压缩,然后将文件复制到system32目录下,在RegSvr32 /s JSActi.dll注册就没问题
    我的是DLL,需要改成OCX么?直接调用就不行......
      

  7.   

    我也遇到这个问题,我的cab包里的也是dll,我现在测试下来客户浏览器能下载我的cab包,但是dll注册不能成功。求答案。
      

  8.   

    如果DLL的名字很长有关系么????
      

  9.   

    和名字长短没关系
    注册是自动的,没有注册成功,那就是dll依赖的dll没有找到
    楼上有人已经说了,放在system32目录下
      

  10.   

    浏览器限制了吧
    1. 查看SYSTEM32目录下是否有释放了的DLL文件
    2. 将浏览器的ACTIVEX权限降低,能自动下载、注册和运行ActiveX控件。
      

  11.   

    我已经放在system32中了!我调用CAB的时候只有其中的一个文件解压出来了,另一个没出来,如果我将其拷贝出来是没有问题的!
    在调用CAB的时候应该是自动将文件解压缩出来,不知道为什么其中一个依赖的DLL没出来......
      

  12.   

    什么浏览器?你试试如果把IE选项里的所有关于ActiveX的选项全部Enable,能调用成功吗
      

  13.   

    inf脚本写的有问题吧。
    下一个flash的cab研究一下。
      

  14.   

    IE浏览器,已经全部设置为Enable了....
      

  15.   

    JSActi.dll = JSActi.dll
    怎么有空格?
    JSActi.dll=JSActi.dll
      

  16.   

    你确定?那就很奇怪了。你直接将DLL放在System32目录里,然后在网页里调用能成功是吗?
      

  17.   

    你确定那个 非安全activeX禁止的选项你也Enable了?
      

  18.   

    如下是我的调用成功的inf[version]    
    signature="$CHINA$"   
    AdvancedINF=1.0   
       
    [Add.Code]    
    dsoframer.ocx=dsoframer.ocx    [dsoframer.ocx]
    file-win32-x86=thiscab
    clsid={00460180-9E5E-11D5-B7C8-B8269041DD57}
    FileVersion=1,3,0,0
    RegisterServer=yes
    DestDir = 11
      

  19.   

    谢谢,主席,我也是下载了你的那个一条龙教程,参照着完成的,.....
    这个问题昨晚搞定了,将Inf文件中
    [Add.Code]
    GetHDW.dll=GetHDW.dll
    JSActi.dll = JSActi.dll这两个文件我没有按照依赖顺序进行排序.....在网上看见过说要注意,还是犯错了!