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

2016-02-19 16:54 21 1 收藏

下面是个简单易学的关于javascript数组与VB DLL中中数组的传递问题教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - Web开发 】

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

  DLL对象:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  TestPrj.Test

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  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))。

来源:http://www.tulaoshi.com/n/20160219/1613507.html

延伸阅读
/*程序作者:管宁 站点:www.cndev-lab.com 所有稿件均有版权,如要转载,请务必闻名出处和作者*/ #include stdio.h main() { void search_score(); /* 定义自定义涵数类型为不返回型 */ void count_avg(); /* 定义自定义涵数类型为不返回型 */ static float a[3][4]={{97,45.5,66,77},{88,92.5...
标签: Web开发
给Array本地对象增加一个原型方法,它的用途是删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。 形式化描述: input Array(size=N) output Array1=Array的无重复保序的子集, 无重复是指,对任意a,b属于Array1,a!=b 保序是指,若a在Array的下标小于b在Array的下标,则a在Array1中的下标也小于b在Arr...
标签: Web开发
上次写的一篇《JavaScript 数组的 uniq 方法》,发现代码的问题还是存在。比如如果数组内有 undefined 元素就无法过滤等。 昨天看见 Lazy 兄弟重新更新了函数,现在他是这样子写的: Array.prototype.uniq = function() {     var resultArr = [], ...
1.数组反转 代码如下: import java.util.Arrays;  public class ArrayReverse {      public static void main(String[] args){          int[] arr ={1,2,3,4,5,6,7,8,9};          reverse(arr);      ...
标签: ASP
  If you store an array in a Session object, you should not attempt to alter the elements of the stored array directly. For example, the following script will not work: <% Session("StoredArray")(3) = "new value" % This is because the Session object is implemented as a collection. The arra...

经验教程

443

收藏

43
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部