救急!救急! js里调用VBArray的返回值问题????我在JAVASCRIPT里调用了一个VBArray数组,如下所示:OCX是用的VC写的,OCX里的函数原型大概为: int GetInfo(字符变量sIP,指针结构体数组变量P_MSG);
MyOcx为OCX的对象.JavaScript调用:
  var arrayVariants = new VBArray(MyOcx.GetInfo("192.168.1.233"));
  var arrayBSTR = arrayVariants.toArray(); //用VBArray将安全数组转为JS数组
  var nRet = -1; ---> 注意这个是我想要的函数int返回值,不知道应该怎么获取??通过上面的调用我已经能够正确的获取函数GetInfo里的"指针结构体数组变量P_MSG"参数的值了,但是我要怎么获取GetInfo函数的int返回值呢??? 各位大侠帮帮忙呀!

解决方案 »

  1.   

    -----------------
    JS中可以使用getItem(colIndex, rowIndex)直接访问VBArray(无需new VBArray)。 
    VBArray对象提供以下方法: 
    dimensions():获取列数 
    ubound(colCount):根据列数(维数)获取行数。 
    lbound(colCount):用来判断索引是从多少开始的,这个意义不是很大,一般都是返回0。 
    toArray():直接变成js数组(一维)。 
    getItem(y, x):获取第x行第y列。详细出处参考:http://www.jb51.net/article/14403.htm
      

  2.   

    我alert(arrayBSTR) 弹出的都是 指针结构体数组变量P_MSG 里的值.不知道要怎么获取这个函数返回的int值?
      

  3.   

    var nRet = arrayBSTR[0];?
      

  4.   

    你的意思是第一个参数为函数返回值?我用alert查看了,不是!
      

  5.   

    用alert打印出来的信息为:"ID0001,张二,1,1,0,0,0,0,0,,0,01026598746,1"
    都是我那个结构体里的值.
      

  6.   

    每次MyOcx.GetInfo("192.168.1.233")的结构都是一样的么,如果是一样的
    那你就看看哪个索引下面是你想要的值,然后var nRet = arrayBSTR[index];//inedx就是索引
      

  7.   

    每次有些变量,但是我结构体变量里有13个元素,这个是对应,我可以很确定这里面没有多余的元素了,也没有与函数返回的INT值类似的,第一个参数肯定不是!因为返回的INT值要私是负数,要么是大于1.
      

  8.   

    返回的INT值要么是负数,要么是大于等于1的数字. 所以我可以肯定不是第一个元素"arrayBSTR[0]"
      

  9.   

    另外用alert打印出来的元素个数与  GetInfo 函数里的 "指针结构体数组变量P_MSG" 的个数一致,这就说明 GetInfo 函数 的int返回值应该不在 arrayBSTR 数组里.
      

  10.   

    其实你一直所说的int返回值是什么东西呢?你都说不在这个数组里面了,要怎么样才能获取到?
      

  11.   

    我现在是获取到了GetInfo函数里面的“指针结构体数组变量P_MSG” 这个参数的值,但是我还要获取 GetInfo函数的Return值。比如下面的javascript 函数演示了传入的参数值改变了,还要获取这个函数的返回值(就是return结果)。
    function getinfo(strval){
        if(strval== "123"){
           strval= "456";
           return(1);
        }
        else{
            strval= "789";
            return(-1);
        }
    }
    var strText= "123";
    var nRet= getinfo(strText);
    alert(“参数值:”+strText);
    alert(“函数返回值:”+nRet);不知道我讲的你有没有明白?^_^
      

  12.   

    "OCX是用的VC写的,OCX里的函数原型大概为: int GetInfo(字符变量sIP,指针结构体数组变量P_MSG);"就是说,我不仅想要获取参数“指针结构体数组变量P_MSG”它的值,
    还要获取 GetInfo函数的return还回值。
      

  13.   

    function getinfo(strval){
      if(strval== "123"){
      strval= "456";
      return(1);
      }
      else{
      strval= "789";
      return(-1);
      }
    }
    var strText= "123";
    var nRet= getinfo(strText);
    alert(“参数值:”+strText);
    alert(“函数返回值:”+nRet);字符串是值传递的。。你这样做修改不了strText
      

  14.   

    我只是用javascript举了一个例子,因为我调用的是OCX控件,
    一个是要获取调用里面的参数,另外还要获取那个函数的返回值。
      

  15.   


    按你这么说
    MyOcx.GetInfo("192.168.1.233")
    这个函数就是返回你的int了呗。。