【发布时间】:2013-05-14 16:30:32
【问题描述】:
我已经尝试了所有其他相关主题的所有可用帮助,但没有解决问题,代码如下
VB6(DLL 代码):
Public Function enterorder(vals() As Variant, ordhdr() As Variant) As String
................... code ............
enterorder = "done"
End Function
平均售价:
SET objdll = server.createobject("dllproname.classname")
Dim values(1, 4)
Dim ordhdr(1)
dim ret
ordhdr(0) = "1012"
ordhdr(1) = "ASP TESTING descript"
values(0, 0) = "testing "
values(0, 1) = "testing 2"
values(0, 2) = "HO"
values(0, 3) = "2.0000"
values(0, 4) = "12.0000"
values(1, 0) = "testing part 2 "
values(1, 1) = "testing again"
values(1, 2) = "HO"
values(1, 3) = "2.0000"
values(1, 4) = "12.0000"
ret = objdll.EnterOrder(values(), ordhdr())
response.write("Done")
代码报错:
Microsoft VBScript 运行时错误“800a0009” 下标超出范围
我试过删除多维数组,只发送普通数组,同样的错误仍然存在。
我还尝试在传递数组时删除括号 (),例如 (objdll.EnterOrder(values , ordhdr)
) 它给出类型不匹配错误。
我的 VB6 代码接受字符串数组,但我按照一些关于帮助主题的指南将其更改为变体类型,这也没有帮助。
相同的代码可以工作,如果我将此 dll 添加到 vb6 项目引用中,然后调用相同的函数,它会完美运行。但是用asp的相同代码不起作用。
谢谢。
【问题讨论】:
-
也试过了,还是不行
-
同样的错误,好像我从函数调用中删除了括号,它说“预期语句结束”所以为了函数调用我需要在函数调用之前删除变量赋值
-
如果我从函数调用中删除括号和变量赋值,它会调用函数并显示相同的错误
-
它说类型不匹配
-
是的,我把它改成了变体
标签: arrays dll asp-classic vb6