javascript数组与VB DLL中中数组的传递问题

2014-06-09
浏览
导读:各位:我现在在JavaScript中定义一个一维数组,然后调用VB编写的DLL对象,在DLL对象给此数组赋值,然后在JavaScript读出已经赋值的数组。请问如何操作。 DLL对

各位:我现在在JavaScript中定义一个一维数组,然后调用VB编写的DLL对象,在DLL对象给此数组赋值,然后在JavaScript读出已经赋值的数组。请问如何操作。

DLL对象:

TestPrj.Test

Public   Sub   Test(strName()   As   Variant)
strName(0) = "MR "
strName(1) = "zhang "
End Sub

JavaScript:

<Script   language= 'JavaScript '>
var A=new Array();
var Test=new ActiveObjectX( "TestPrj.Test ");
Test.Test(A);
Response.Write(A.length);
</Script>

请问出错在哪里????

---------------------------------------------------------------

感谢您使用微软产品。

您可以在VB中建立AciveXdll,处理含数组参数的函数,在ASP中调用AciveX对象的函数。由于Javascript的array对象与VB中的array以不同的方式存储,因此Javascript的array对象作为VBActiveXdll函数的参数将出现类型不匹配的错误。建议您在ASP中用VBscript。

如下例,先在VB中建立AciveXdll工程,项目名为ASPArray,类名clsArray

Public   Function   TestArray(ByRef   vArray   As   Variant)   As   String
Dim nCnt As Integer
'Check that the argument passed is an array
If Not IsArray(vArray) Then
TestArray = "Parameter is not an Array "
Exit Function
End If
For nCnt = LBound(vArray) To UBound(vArray)
'change Array Element
vArray(nCnt) = "aqqq "
Next nCnt
TestArray = "Parameter is an Array "
End Function

在ASP中引用ASPArray.clsArray对象,

<%
Dim oTestObj, vMyArray(2), vRtnValue
vMyArray(0) = "Element 1 "
vMyArray(1) = "Element 2 "
vMyArray(2) = "Element 3 "
Set oTestObj = Server.CreateObject( "ASPArray.clsArray ")
vRtnValue = oTestObj.TestArray(vMyArray)
Response.Write( vRtnValue )
%> <br>
vMyArray(1)= <%=vMyArray(1)%>

详细信息请参考以下链接:

HOWTO:ImplementArrayArgumentsinVBCOMObjectsforASP

http://support.microsoft.com/support/kb/articles/q217/1/14.asp

您可以使用JavaScript中vbArray对象的toArray()方法把VBScript的数组(Array)转化为Javascript数组,但是截至到目前VBScript(4.0)版,还没有把JavaScript数组转化为VBscript数组的方法。

详细信息请参考以下文档中PassingArraysfromVBScripttoJscript部分:

UsingVBScriptandJScriptonaWebPage

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvid/html/msdn_vbnjscrpt.asp

-微软全球技术中心VB技术支持

本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款

(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。

为了为您创建更好的讨论环境,请参加我们的用户满意度调查

(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。

js代码实现轮播图

js实现上传按钮并显示缩略图小轮子

js实现无缝轮播图特效

Node.js API详解之 os模块用法实例分析

详解react组件通讯方式(多种)