关于javascript数组与VB DLL中中数组的传递问题
2008-10-23 14:42
441 查看
各位:我现在在JavaScript中定义一个一维数组,然后调用VB编写的DLL对象,在DLL对象给此数组赋值,然后在JavaScript读出已经赋值的数组。请问如何操作。
DLL对象:
TestPrj.Test
JavaScript:
请问出错在哪里????
---------------------------------------------------------------------------------------------------------------------------------------------------------
您可以在VB中建立AciveXdll,处理含数组参数的函数,在ASP中调用AciveX对象的函数。由于Javascript的array对象与VB中的array以不同的方式存储,因此Javascript的array对象作为VBActiveXdll函数的参数将出现类型不匹配的错误。建议您在ASP中用VBscript。
如下例,先在VB中建立AciveXdll工程,项目名为ASPArray,类名clsArray
在ASP中引用ASPArray.clsArray对象,
详细信息请参考以下链接:
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
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) %> 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
相关文章推荐
- 关于使用vc++调用matlab生成的dll传递数组的问题
- 关于使用vc++调用matlab生成的dll传递数组的问题
- VB调用C# DLL 传递数组参数问题
- c语言 关于数组名作参数传递问题
- 关于C#中调用C++dll传递回调函数的问题
- 关于指针和数组对申请内存malloc和作为参数传递的一些问题
- 黑马程序员---------C语言 关于数组被当作函数参数传递的问题
- 关于VB数组里面按值传递和按地址传递的区别
- 关于javascript URL 传递参数乱码的问题及解决方案。
- 关于jquery使用ajax传递数组到struts后台的接受问题
- vb.net调用vc动态库时传递数组参数应注意的问题
- 在VB中调用C/C++语言编写的dll,数组参数的传递
- 关于使用mxGetPr从MATLAB向C中传递数组的相关问题
- 关于javaScript注册click事件传递参数的不成功问题
- 在VB中调用C/C++语言编写的dll,数组参数的传递
- Javascript与ASP.NET(一般处理程序)关于URL(get方式)传递中文乱码问题的解决方案
- 传递VB数组给DLL中的函数
- Javascript与ASP.NET(一般处理程序)关于URL(get方式)传递中文乱码问题的解决方案
- 关于jquery中post的传递数组的问题
- 在VB中调用C/C++语言编写的dll,数组参数的传递