CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

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

楼主laimon(laimon)2002-02-26 12:56:39 在 Web 开发 / ASP 提问

各位:我现在在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>  
  请问出错在哪里???? 问题点数:100、回复次数:2Top

1 楼lun2001(小伦)回复于 2002-02-26 13:08:15 得分 20

出错信息是怎么样的  
  可能数组不兼容  
  试一下用VBArray  
  或改用vbscriptTop

2 楼acptvb(微软全球技术中心 VB技术支持)回复于 2002-02-26 20:22:17 得分 80

感谢您使用微软产品。  
     
  您可以在VB中建立AciveX   dll,处理含数组参数的函数,在ASP中调用AciveX   对象的函数。由于Javascript的array对象与VB中的array以不同的方式存储,因此Javascript的array对象作为VB   ActiveX   dll函数的参数将出现类型不匹配的错误。建议您在ASP中用VBscript。  
  如下例,先在VB中建立AciveX   dll工程,项目名为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:   Implement   Array   Arguments   in   VB   COM   Objects   for   ASP  
    http://support.microsoft.com/support/kb/articles/q217/1/14.asp  
     
  您可以使用JavaScript中vbArray对象的toArray()方法把   VBScript的数组(Array)   转化为Javascript数组,但是截至到目前VBScript   (4.0)版,还没有把JavaScript数组   转化为   VBscript数组的方法。  
  详细信息请参考以下文档中Passing   Arrays   from   VBScript   to   Jscript部分:  
  Using   VBScript   and   JScript   on   a   Web   Page  
  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))。  
   
  ======================  
  Top

相关问题

  • vb数组
  • 在VB中调用VC中的dll,得到一个数组,如何在VB中得到这个数组?
  • vb 调用vc写的dll时,怎样传递数组参数
  • vb 调用vc写的dll时,怎样传递数组参数
  • vb调用vc编写的dll数组问题????????
  • 标准DLL中如何返回字符串数组给VB????
  • VB数组定义??
  • vb数组问题
  • ■■■菜鸟提问:vb调用c写的dll,如何传递二维数组、返回两个一维数组?■■■
  • 在vb中调用vc做的dll,如何给dll传递数组变量?!

关键词

  • vb
  • vbscript
  • 函数
  • asp
  • javascript
  • dll
  • microsoft
  • 数组
  • varray
  • acivex

得分解答快速导航

  • 帖主:laimon
  • lun2001
  • acptvb

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo