在自己的机器上调试没有问题,将它封装成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
这个应该是什么原因....
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
ocx放那里都行,依赖的dll得放到system32目录。
<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,这样可以调么?
如过将CAB解压缩,然后将文件复制到system32目录下,在RegSvr32 /s JSActi.dll注册就没问题
我的是DLL,需要改成OCX么?直接调用就不行......
注册是自动的,没有注册成功,那就是dll依赖的dll没有找到
楼上有人已经说了,放在system32目录下
1. 查看SYSTEM32目录下是否有释放了的DLL文件
2. 将浏览器的ACTIVEX权限降低,能自动下载、注册和运行ActiveX控件。
在调用CAB的时候应该是自动将文件解压缩出来,不知道为什么其中一个依赖的DLL没出来......
下一个flash的cab研究一下。
怎么有空格?
JSActi.dll=JSActi.dll
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
这个问题昨晚搞定了,将Inf文件中
[Add.Code]
GetHDW.dll=GetHDW.dll
JSActi.dll = JSActi.dll这两个文件我没有按照依赖顺序进行排序.....在网上看见过说要注意,还是犯错了!