在网页中加入了activex控件,在javascript中写一个函数来调用自定义activex控件的功能函数。但有一个函数是含有指针类型的,例如:NewCmd(SHORT x, ULONG* y),那我应该怎么来调用这个函数呢?
var a;
var b;
document.object.NewCmd(a,&b);
这样子会出现语法错误,但如果不用&符号,就不能得到想要的结果。怎么在javascript中引用参数?

解决方案 »

  1.   

    用数组,或者用vbscript的数组试试不行的话,还是改参数类型吧
      

  2.   

    谢谢楼上两位。
    我用数组的方式了,还是不行的,代码是这样的:
    var a = 1;
    var pdat = new Array(1);
    pdat[0] = "1";
    document.object.NewCmd(a, pdat);
    这样还是会出现“类型不匹配”错误。能不能再将清楚点,或是举个例子呢?先谢谢了!
      

  3.   

    改NewCmd(SHORT x, ULONG* y)这边吧
    把他装成list或者啥的结构.
      

  4.   

    谢谢你常乐,但我还不大明白你的意思。
    我查了下,好像用javascript是不行的,想改用vbscript。但我对vbscript也不熟悉,有人能给个例子吗?不胜感激。
      

  5.   

    额.我的意思大概是.
    改成NewCmd(SHORT x, ULONG y)
    然后返回一个array之类的.内容是[x,y]或者直接返回y那么调用的时候就可以写成
    var a; 
    var b; 
    b=document.object.NewCmd(a,&b)[1];
    或者
    var a; 
    var b; 
    b=document.object.NewCmd(a,&b); 
     
      

  6.   

    VBScript里只能拿到函数的指针(GetRef)
    变量的指针应该是拿不到的.
      

  7.   

    楼主定义vb的数组试试jscript参考手册里有介绍的
      

  8.   

    我尝试了vb数组,程序如下:
    Dim a
    a = 1
    Dim pdat(0)
    pdat(0) = 1
    MsgBox pdat(0)
    document.object.Newcmd a,pdat
    还是出现类型不匹配的错误
      

  9.   

    不好意思,我理解错了,楼上的是说用javascript中的vb数组。有没有人能给我一个例子啊,这个我确实不大懂的,谢谢了!!!
      

  10.   

    其实也差不多,就是用vbarray试试控件接口有指针设计的不太合适,最好还是改参数类型
      

  11.   

    好的,谢谢fosjos,我先去试试
      

  12.   

    谢谢大家的帮助。不过我后来暂时还是放弃了在javascript中尝试使用带有在指针参数的activex控件函数的方法,改了下函数的参数,避免了指针的使用。
    准备先把这个问题搁一下,有人如果实现的话指点我下啊,谢谢!