WEB开发网
开发学院网页设计JavaScript 关于javascript数组与VB DLL中中数组的传递问题 阅读

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

 2010-09-14 13:07:21 来源:WEB开发网   
核心提示:各位:我现在在JavaScript中定义一个一维数组,然后调用VB编写的DLL对象,关于javascript数组与VB DLL中中数组的传递问题,在DLL对象给此数组赋值,然后在JavaScript读出已经赋值的数组,具体事项可参见使用条款(http://support.microsoft.com/directory/

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

DLL对象:

TestPrj.Test

PublicSubTest(strName()AsVariant)
 strName(0)="MR"
 strName(1)="zhang"
EndSub

JavaScript:

<Scriptlanguage='JavaScript'>
 varA=newArray();
 varTest=newActiveObjectX("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

PublicFunctionTestArray(ByRefvArrayAsVariant)AsString
  DimnCntAsInteger
 
  'Checkthattheargumentpassedisanarray
  IfNotIsArray(vArray)Then
   TestArray="ParameterisnotanArray"
   ExitFunction
  EndIf
 
  FornCnt=LBound(vArray)ToUBound(vArray)
    'changeArrayElement
    vArray(nCnt)="aqqq"
  NextnCnt
    
  TestArray="ParameterisanArray"
   
EndFunction

在ASP中引用ASPArray.clsArray对象,

<%
 DimoTestObj,vMyArray(2),vRtnValue
      
  vMyArray(0)="Element1"
  vMyArray(1)="Element2"
  vMyArray(2)="Element3"
 
  SetoTestObj=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))。

Tags:关于 javascript 数组

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接