我有一个vb的dll,在jsp中要调用它的一个函数。函数声明格式为:
Public Function zipFile(strSourceFile() As String, strDestinationFile As String, strPassWord As String) As Boolean
有三个参数,第一个是数组,第二和第三个参数是字符串
我在jsp中这样定义
function zipFile() {
var ar1 = new Array(1);
ar1[0] = "E:\\00000006\\00000001.tif";
try{
//MyOcx是Vb写的控件,已经被实例化
MyOcx.zipFile(["fds","asdf"],"0001.zip","123");
} catch(e) {
alert(e.message);
}
}
但是调用的时候会抛出异常——类型不匹配。好像是js中的数组和Vb中的存储方式不一样,但是我不知道如何做?请大侠帮忙
Public Function zipFile(strSourceFile() As String, strDestinationFile As String, strPassWord As String) As Boolean
有三个参数,第一个是数组,第二和第三个参数是字符串
我在jsp中这样定义
function zipFile() {
var ar1 = new Array(1);
ar1[0] = "E:\\00000006\\00000001.tif";
try{
//MyOcx是Vb写的控件,已经被实例化
MyOcx.zipFile(["fds","asdf"],"0001.zip","123");
} catch(e) {
alert(e.message);
}
}
但是调用的时候会抛出异常——类型不匹配。好像是js中的数组和Vb中的存储方式不一样,但是我不知道如何做?请大侠帮忙
<SCRIPT LANGUAGE="VBScript">
<!--
Function CreateVBArray()
Dim i, j, k
Dim a(2, 2)
k = 1
For i = 0 To 2
For j = 0 To 2
a(j, i) = k
document.writeln(k)
k = k + 1
Next
document.writeln("vbCRLF")
Next
CreateVBArray = a
End Function
-->
</SCRIPT><SCRIPT LANGUAGE="JScript">
<!--
function VBArrayTest(vbarray){
var a = new VBArray(vbarray);
var b = a.toArray();
var i;
for (i = 0; i < 9; i++)
{
document.writeln(b[i]);
}
}
-->
</SCRIPT>
</HEAD><BODY>
<SCRIPT LANGUAGE="JScript">
<!--
VBArrayTest(CreateVBArray());
-->
</SCRIPT>
</BODY>
直接使用VBS写数组
修改代码如下:
<head>
<title></title>
<SCRIPT LANGUAGE="VBScript">
<!--
Function CreateVBArray()
dim file(1)
file(0) = "E:\00000006\00000001.tif"
file(1) = "E:\00000006\00000002.tif"
CreateVBArray = file
End Function
-->
</SCRIPT>
<SCRIPT LANGUAGE="JScript">
<!--
function VBArrayTest(vbarray){
var a = new VBArray(vbarray);
var b = a.toArray();
return b
}
-->
</SCRIPT>
</head><body>
function packFile()
{
try {
var filearray = VBArrayTest(CreateVBArray());
ehView1.zipFile(filearray,"132.zip","123");
}
catch (e) {
alert(e.message);
}
}
</body>
Graph(ByVal TP As Byte, ByVal X!, ByVal Y!, ByVal N As Byte, A() As Single, ByVal Bl as Single=1,Optional ByVal Size As Integer = 100)
现在我在Javascript中调用,
var arrayf =new Array();
for(var i=0;i<10;i++)
{
arrayf[i]=i+5.26;
}
Map1.Graph(2,826.44,822.18,10,arrayf,1,100);
运行是提示类型不匹配,
期待你的回复,我邮箱是[email protected],谢谢!