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

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

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

【 tulaoshi.com - Web开发 】

  各位:我现在在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

  请问出错在哪里????

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

  --------------------------------------------------------------- 感谢您使用微软产品。

  您可以在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技术支持

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

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

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

来源:https://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 = [], ...
标签: Web开发
数组就是某类数据的集合,数据类型可以是整型、字符串、甚至是对象 Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维数组的功能 1.1 定义数组 声明有10个元素的数组 var a = new Array(10); 此时为a已经开辟了内存空间,包含10个元素,用数组名称加 [下标] ...
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);      ...

经验教程

56

收藏

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