怎么通过javascript调用Activex的方法将javascript中的一个字符串变量传给Activex?参数应该是什么呢?我用BSTR和VARIANT都不行,IE报错说参数类型不匹配。

解决方案 »

  1.   

    可以啊,最好把你相关代码贴出来。我的程序中COM与JScript通迅很正常
      

  2.   

    网页中的javascript代码:
    <script language=javascript>
    function toOcx(){
    var a=String("adsfsdfsdfsdf");
    document.all['ocx1'].ShowInfo2(a);
    }
    </script>
    ActiveX中的代码:
    void CMyActivexCtrl::ShowInfo2(BSTR pbstr)
    {
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    CString str(pbstr);
    m_textPane.InSetStr(str);
    ::SysFreeString(pbstr);
    }如果ShowInfo2不带参数,调用很正常。但现在要把字符串参数传到ActiveX中就不行了。会出现一个类型不匹配的错误提示框。该怎么办?
      

  3.   

    搞定,原来要把BSTR改为LPCTSTR。
    可为什么在调试的时候不行呢?必须直接打开网页中才可用?
      

  4.   

    应该用 BSTR搞定,原来要把BSTR改为LPCTSTR。
    可为什么在调试的时候不行呢?必须直接打开网页中才可用?
    估计你那有问题
      

  5.   

    我用的是vc7.0,在类视图中给Activex添加方法,选择参数类型为BSTR,结果类中的方法参数为LPCTSTR,idl中的是BSTR,不过总算可以传进来了,只是在调试的时候不行。
    如果不是这样,我该怎么做?能给个例子吗?