免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9806 | 回复: 5
打印 上一主题 下一主题

在Javescript中如何调用OCX控件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-19 15:17 |只看该作者 |倒序浏览
我用VC 写了一个ocx控件 接口如下 TsOcx(BSTR FAR* instr, BSTR FAR* outstr)
在调用的时候总是报参数类型不符的错误。我刚刚接触jsp方面的东西,不是很熟,望那位高手帮忙解决一下,谢谢!!!!!!
我测试的脚本如下:
<html>
<head>
<title>WebOcx1</title>
</head>
<object classid='clsid:2D33A7C4-E61F-47FC-8A14-62EED8758BF0' codebase='L:\ocx test\MifReaderOcx.ocx' id='WebOcx1'>   
</object>

<SCRIPT LANGUAGE='javascript'>

function Dial()
{
        var sss;
        var ss;//=parseInt("1000");

        //var DvdPlayCtl = new ActiveXObject("MifReaderOcx.ocx");
       
        alert("开始操作 \n");
       
        //WebOcx1.m_ocxtest = 10;
        sss = WebOcx1.TsOcx(ss,sss);
        alert("out="+ss);
        alert("调用结束!\n");
        alert("输出:"+sss+"\n");
}

</SCRIPT>
<body>
  <form method='POST' name='form1' >
      <input type='button' value='调用ActiveX测试' class='btn' onclick='Dial()'name='btn1'>
  </form>
</body>
</html>

论坛徽章:
0
2 [报告]
发表于 2006-05-19 15:43 |只看该作者

高手顶呀,我急急急呀。。。。

如题。

论坛徽章:
0
3 [报告]
发表于 2006-05-19 21:00 |只看该作者
和javascript,jsp没有关系

是activex对外的接口参数有问题,javascript穿过去的应该是variant类型的

建议接口换成variant类型的,然后在c++里面做转换

具体的可以查查相应的文档

论坛徽章:
0
4 [报告]
发表于 2006-05-20 16:00 |只看该作者

谢谢 '西湖龙井 "的回复。我试试。

谢谢 '西湖龙井 "的回复。我试试。

论坛徽章:
0
5 [报告]
发表于 2006-05-20 16:47 |只看该作者
我定义了一个函数
BSTR CMifReaderOcxCtrl::OcxTss(const VARIANT FAR& param)
{
        CString strResult;
        // TODO: Add your dispatch handler code here
        strResult = "By Java Script Func!";
        return strResult.AllocSysString();
}
script脚本如下
<html>
<head>
<title>WebOcx1</title>
</head>

<object classid="clsid:2D33A7C4-E61F-47FC-8A14-62EED8758BF0" data="111111" name="webocx" width="32" height="32" id="webocx">
  <embed src="MifReaderOcx.ocx" width="32" height="32" name="webocx"></embed>
</object>

<SCRIPT LANGUAGE='javascript'>

function Dial()
{
        var sss;
        var ss ="this is test";
        //byte b[] ;

        //var DvdPlayCtl = new ActiveXObject("MifReaderOcx.ocx");
       
        alert("开始操作 \n");
       
        //WebOcx1.m_ocxtest = 10;
        sss = webocx.OcxTss(ss);
        alert("out="+ss);
        alert("调用结束!\n");
        alert("输出:"+sss+"\n");
}

</SCRIPT>
<body>
  <form method='POST' name='form1' >
  </form>
  <input type='button' value='调用ActiveX测试' class='btn' onClick='Dial()'name='btn1'>
</body>
</html>
还是报类型不符。我已经郁闷快一周了。老大帮忙呀!

论坛徽章:
0
6 [报告]
发表于 2006-05-21 11:55 |只看该作者
好像只改了参数类型,返回类型没有改奥
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP