silverlight调用ocx控件

silverlight调用ocx控件,第1张

概述由于项目需求 silverlight需要和 c++做的ocx控件做交互,又因为silverlight不能直接调用ocx控件,于是就考虑到了 javacritp充当中间者。于是一个解决方案就出来了: Silverlight 与javascript交互,javascript与ocx控件交互,他们中间的数据传输采用 string类型的 xml数据流 在实践过程中遇到以下实际问题: 1>   在承载sil 由于项目需求 silverlight需要和 c++做的ocx控件做交互,又因为silverlight不能直接调用ocx控件,于是就考虑到了 javacritp充当中间者。于是一个解决方案就出来了:

Silverlight 与@R_502_3715@交互,@R_502_3715@与ocx控件交互,他们中间的数据传输采用 string类型的 xml数据流

在实践过程中遇到以下实际问题:

1>   在承载silverlight应用程序的页面,添加ocx控件的引用的标签必须有一个开始标志,和一个结束标志,(否则会出现,注册页面只能识别随意的一个ocx控件)classID 为这个ocx注册时的guID

        <div ID="Eye"><object ID="EyeActiveX" classID="CLSID:49337F3E-983E-4D01-9D1C-9B9CA8F021AE"

            > </object> </div>

 相应的@R_502_3715@脚本:   

 <script language="@R_502_3715@" type="text/Jscript"  defer="defer">

        function checkEye(strXml) { //获取视力信息
          try {
            var obj = document.getElementByID("EyeActiveX");
            var returnValue = obj.GatherEyeValue(strXml);
            return (returnValue)
            }
          catch (e) {
              alert("Error");
                     }
           }
 </script>

对应的silverlight页面语句:

string strXml=“......." ;//省略

object result  = HTMLPage.Window.Invoke(“checkEye”,strXml); //以这个方法为例,我们返回的结果为一个string类型的xml字符串

拿到 result  我们就可以对他进行处理了

2>  在注册ocx控件时,由于ocx用的动态链接库的版本不一样,造成ocx控件的功能 不能成功的在裸机上运行,于是用到了以下两个 工具:

      1.   vcredist_x86.exe是针对于不同cpu所出的优化补丁执行程序,是一种基于C++的软件需要的库文件,有些程序在安装相应的vcredist文件环境下才能运行

      2.   depends.exe 是检测ocx等里面动态链接库的依赖关系。这里面如果ocx缺少的dll文件,都会显示error,作为检测人员的你,去网上下载相应的dll文件即可

3>    在运行承载silverlight的页面上,首次加载所有的ocx控件,ie8安全默认的级别使ocx控件无法加载,这个时候最 傻的 办法就是将每个客户机的浏览器的安全级别降至最低,(不过有实力的公司 可以将ocx进行安全认证)

备注:  vcredist_x86.exe,depends.exe 可以去网上下载,如果没找到,在我的上传文件里可以找到

总结

以上是内存溢出为你收集整理的silverlight调用ocx控件全部内容,希望文章能够帮你解决silverlight调用ocx控件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1020466.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存