vbscript 调用其他控件 返回值为数组时 出现 类型不匹配错误
用vbscript调用一个其他语言写的控件,该控件在vb6中可以正常使用,如下是vb6中的代码
vRet = frmMain.FK524ID1.GetEnrollData(mMachineNumber, _
vEnrollNumber, _
vFingerNumber, _
vPrivilege, _
glngEnrollData, _
glngEnrollPData)
其中mMachineNumber,
vEnrollNumber,
vFingerNumber,
vPrivilege,glngEnrollPData均为参数代进去的,只有glngEnrollData是个数组返回的,在vb6中可以正常使用,
同时在vb6中定义的也确实是数组
现在是这样子的,想把该控件使用在web页面中,我先再用vb6封装了一下,
Public Function GetEnrollData(FK524ID As Variant, mMachineNumber As Long, vEnrollNumber As Long, vFingerNumber As Long, vPrivilege As Long, ByRef glngEnrollData As Variant, glngEnrollPData As Variant) As Long
Dim gTemplngEnrollData As Variant
vRet = FK524ID.GetEnrollData(mMachineNumber, _
vEnrollNumber, _
vFingerNumber, _
vPrivilege, _
gTemplngEnrollData, _
glngEnrollPData)
glngEnrollData = gTemplngEnrollData
End Function
然后在网页中这样调用
<script type="text/vbscript" language="vbscript">
sub GetSerialNumber1()
Dim obj, vret, mMachineNumber
Dim glngEnrollData1
mMachineNumber = 1
Set obj = document.getElementById("FK524ID1")
If Not IsObject(obj) Then Exit Sub
If Not obj.OpenCommPort(3) Then Exit Sub
obj.CommPort = 1
If Not obj.EnableDevice(mMachineNumber, False) Then
MsgBox "Err"
Exit Sub
End If
Set proxy = CreateObject("prj_fk524.fk524") ' CreateObject("工程1.Class1")
vret = proxy.GetEnrollData(obj, 1, 8, 0, 0,glngEnrollData1,0)
If vret<> 0 Then
msgbox "ok"
Else
msgbox "Can Not Get Enroll Data !"
End If
end sub
</script>
然后就出现了类型不匹配的问题,不知道是那个环节有问题,请兄弟们帮我看看吧
vRet = frmMain.FK524ID1.GetEnrollData(mMachineNumber, _
vEnrollNumber, _
vFingerNumber, _
vPrivilege, _
glngEnrollData, _
glngEnrollPData)
其中mMachineNumber,
vEnrollNumber,
vFingerNumber,
vPrivilege,glngEnrollPData均为参数代进去的,只有glngEnrollData是个数组返回的,在vb6中可以正常使用,
同时在vb6中定义的也确实是数组
现在是这样子的,想把该控件使用在web页面中,我先再用vb6封装了一下,
Public Function GetEnrollData(FK524ID As Variant, mMachineNumber As Long, vEnrollNumber As Long, vFingerNumber As Long, vPrivilege As Long, ByRef glngEnrollData As Variant, glngEnrollPData As Variant) As Long
Dim gTemplngEnrollData As Variant
vRet = FK524ID.GetEnrollData(mMachineNumber, _
vEnrollNumber, _
vFingerNumber, _
vPrivilege, _
gTemplngEnrollData, _
glngEnrollPData)
glngEnrollData = gTemplngEnrollData
End Function
然后在网页中这样调用
<script type="text/vbscript" language="vbscript">
sub GetSerialNumber1()
Dim obj, vret, mMachineNumber
Dim glngEnrollData1
mMachineNumber = 1
Set obj = document.getElementById("FK524ID1")
If Not IsObject(obj) Then Exit Sub
If Not obj.OpenCommPort(3) Then Exit Sub
obj.CommPort = 1
If Not obj.EnableDevice(mMachineNumber, False) Then
MsgBox "Err"
Exit Sub
End If
Set proxy = CreateObject("prj_fk524.fk524") ' CreateObject("工程1.Class1")
vret = proxy.GetEnrollData(obj, 1, 8, 0, 0,glngEnrollData1,0)
If vret<> 0 Then
msgbox "ok"
Else
msgbox "Can Not Get Enroll Data !"
End If
end sub
</script>
然后就出现了类型不匹配的问题,不知道是那个环节有问题,请兄弟们帮我看看吧
...全文
相关推荐
2021-2022计算机二级等级考试试题及答案No.19202.docx
2021-2022计算机二级等级考试试题及答案No.19202.docx
Microsoft VBScript 编译器错误 错误原因 代码大全
主要介绍了Microsoft VBScript 编译器错误 错误原因 代码大全,需要的朋友可以参考下
Microsoft_VBScript_编译器错误代码含义大全
编译器错误代码含义大全,认识错误代码,更有效修正错误。
VBScript错误代码及对应解释大全
VBScript错误代码及对应解释大全 VBScript错误代码及对应解释大全 VBScript错误代码及对应解释大全 VBScript错误代码及对应解释大全
AutoIt3 GUI自动化实战:从遗留系统到桌面工具开发
GUI自动化是软件自动化测试与流程优化中的关键技术,它通过模拟用户界面操作实现任务的自动执行。其核心原理在于识别并控制应用程序的窗口与控件,从而绕过API限制直接与程序交互。这项技术的价值在于能够高效处理缺乏现代接口的遗留系统、封装重复性操作,并快速开发轻量级桌面工具。在Windows平台自动化领域,AutoIt3凭借其精准的窗口与控件操作能力,成为处理老旧桌面应用、软件静默安装及数据录入等场景的实用解决方案。通过掌握其核心函数与错误处理机制,开发者可以构建出稳定可靠的自动化脚本,显著提升工作效率。


