当前位置:编程学习 > VB >>

activex 控件已打包成cab文件,但是里面的dll未下载,请教高手

小弟,做了个读二代身份证的控件,并打包成cab文件,其中需用到2个dll,WltRS.dll和sdtapi.dll,这两个其中的调用方法是在模块中声明的,方式是如下等等: 

Public Declare Function SDT_OpenPort Lib "sdtapi.dll" (ByVal IPort As Integer) As Integer 


在用户控件中调用stdapi.dll的方法时如下: 

Public Function fx_get_int() As String 
    Dim SamRet As Integer 
    PortFlag = CLng(1001) 
    SamRet = SDT_OpenPort(PortFlag) 
    If SamRet <> &H90 Then '端口选择错误或设备没有连接,请重试 
        fx_get_int = "0" 
    Else 
        SDT_ClosePort (PortFlag) 
        fx_get_int = "1" '打开端口成功 
    End If 
End Function 


然后将工程生成ocx,并用vb6自带的打包工具进行打包成cab文件,而且cab文件中已有WltRS.dll和sdtapi.dll这两个dll, 


在然后加入到我的web工程中引用: 


<OBJECT ID="UEControl" 
CLASSID="CLSID:0F435D42-C478-4146-9260-0874C2D1E52F" 
CODEBASE="TwoIdCard.CAB#version=1,0,0,7"> 
</OBJECT> 

  <input type="button" value=" sfz " onclick="sfz()">  

并用如下js方法调用这个activex控件读取身份证信息 


function sfz(){ 
UEControl.fx_get_int(); 
alert("222"); 
UEControl.fx_connection(); 
alert(UEControl.fx_get_name()); 
UEControl.fx_get_zxzz() 
alert(UEControl.fx_get_photo()); 



打开网页时,控件能正常显示,但是发现WltRS.dll和sdtapi.dll未下载到windows\system32下而导致运行如上js方法时提示“stdapi.dll文件未找到”,但是其他cab包里的dll或者ocx已下载到system32下。 


后来网上查了下,说是inf中的设置能指定WltRS.dll和sdtapi.dll的下载,及下载位置 
于是改inf文件如下 

原先是这样的: 
[sdtapi.dll] 
file-win32-x86=thiscab 
RegisterServer=no 
DestDir= 
FileVersion=0,0,0,0 

[WltRS.dll] 
file-win32-x86=thiscab 
RegisterServer=no 
DestDir= 
FileVersion=0,0,0,0 

改后是这样的: 
[sdtapi.dll] 
file-win32-x86=thiscab 
RegisterServer=no 
DestDir=11 
FileVersion=0,0,0,0 

[WltRS.dll] 
file-win32-x86=thiscab 
RegisterServer=no 
DestDir=11 
FileVersion=0,0,0,0 

但是还是未下载 


但是如果我直接把这两个dll放到system32下是可以读身份证信息的。 


现在我实在是没办法了,请教高手 
--------------------编程问答-------------------- 你修改后重新生成CAB了吗? --------------------编程问答-------------------- 重新生成了 --------------------编程问答-------------------- 江南春~来了...

问题就好办了

顶起,加油 --------------------编程问答-------------------- 顶起,加油 --------------------编程问答-------------------- 自己在检查一下cab是否配置正确,还有是否有权限拷贝dll到系统目录等.. --------------------编程问答-------------------- 能发一份读二代身份证的控件代码给我吗?我正想找这样的资料! --------------------编程问答-------------------- 能发一份读二代身份证的控件代码给我吗?我正想找这样的资料! mate33@21cn.com --------------------编程问答-------------------- 我也遇到类似的问题,在本机上可以弄个测试页看到效果,但在局域网访问IIS时就不能正常显示 --------------------编程问答-------------------- 用Dependency Walker这个工具查一下WltRS.dll和sdtapi.dll是否还依赖其它的dll,一并添加到inf中 --------------------编程问答-------------------- 天狼工作室 http://www.j2soft.cn/

cab的安装信息文件inf的结构如下:

;天狼工作室SiriusTifView控件
;http://www.j2soft.cn/
;版权所有2005-2009,天狼工作室
;保留所有权利
;DestDir 可以为 10 则在 Windows 目录,为 11 则在 Windows\System(32) 目录,或为空则在 Occache 目录。

[version]
signature="$CHICAGO$"
AdvancedINF=2.0

[DefaultInstall]
CopyFiles=install.files
RegisterOCXs=RegisterFiles

[RInstallApplicationFiles]
CopyFiles=install.files
RegisterOCXs=RegisterFiles

[DestinationDirs]
install.files=11

[SourceDisksNames]
1=%DiskName%,包名.CAB,1

[Add.Code]
×××.ocx=×××.ocx




[install.files]
[Add.Code]
×××.ocx=×××.ocx




[SourceDisksFiles]
×××.ocx=1




[×××.ocx]
file-win32-x86=thiscab
RegisterServer=yes
clsid={B6FCC215-D303-11D1-BC6C-0000C078797F}
DestDir=11
FileVersion=1,1,0,1

[RegisterFiles]
%11%\×××.ocx

… --------------------编程问答-------------------- [img=http://album.hi.csdn.net/app_uploads/asftrhgjhkjlkttttttt/20090615/115447203.p.gif?d=20090620115458847][/img] 同意,留个记号 --------------------编程问答-------------------- --------------------编程问答-------------------- 我也遇到过同样情况,不过现在解决了
--------------------编程问答-------------------- 通用二代身份证WEB终端控件及控件的VB源代码:

二代身份证WEB终端控件 lkySfzCard.ocx ,用于WEB开发,并提供该控件的VB源代码,有需要者请联系我。
QQ:150227334

--------------------编程问答-------------------- 在cab包的生成过程中,加入那两个dll,然后重新生成一遍。 --------------------编程问答-------------------- 做签名,打cab,ie设置为可信站点....... --------------------编程问答-------------------- 小弟也是做这一块的,对于那两个dll不能下载的原因是因为电脑上之前装过其他厂家的二代证阅读软件,sysytem32下已经有了这两个dll,而且很有可能被系统占用,无法覆盖,所以没下载下来,但是各厂家的sdtapi.dll名字一样但互相打架,所以你的程序或者机具调用不了,方法就是手动删掉其他厂家的这两个dll,或者你的dll不要放system32下,inf的路径改为比如10,windows目录下,我是这样做的,但是又引出另外一个问题,就是如果那台电脑的system32下有了这两个dll,则我的cab包里面的dll就不会下载到windows下,搞死人了,楼主,你解决了吗?共享下解决办法吧。
补充:VB ,  控件
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,