首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

.NET实现之(ActiveX插件开发)

在打算讲这篇文章之前我深思一个下午,打算分两篇来讲的,但是又怕读者看着嫌烦;其实稍微了解一点ActiveX插件的朋友都能知道,这样一扯可能出现一堆问题;但是我还是决定通过简单的方式尽量让初学者少接触底层的东西包括OLE(对象连接与嵌入)、COM(组件对象模型)之类的概念,但是ActiveX插件在开发上有很高的技术要求,虽然.NET为我们封装了很好的实现途径,但是我们也总不能停留在,知自然而不知其所以然的层面上;今天这篇文章我大概构思了一下,我主要会由浅入深的去逐层的讲解,对一些概念性的东西,我会给出参考资料供大家去学习,由于它的发展历史我也就不去讲解了,主要是实现为主;如果喜欢刨根问底的朋友可以去查询相关的文章或者看一些关于OLE、COM方面的书籍,就算我们不从事相关开发,但是对于我们进行.NET互操作方面还是很有帮助的,也不至于让我们觉得.NET的局限性;本人向大家推荐一本OLE方面的好书:《OLE 2高级编程技术》

01
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MSDN: MFC ATL COM ActiveX

    Microsoft Foundation Classes (MFC) The C++ class library that Microsoft provides with its C++ compiler to assist programmers in creating Windows-based applications. MFC hides the fundamental Windows API in class hierarchies so that programmers can write a Windows-based application without needing to know the details of the native Windows API. Active Template Library (ATL) A C++ template library used to create ActiveX servers and other Component Object Model (COM) objects. ActiveX controls created with ATL are generally smaller and faster than those created with the Microsoft Foundation Classes. Component Object Model (COM) An open architecture for cross-platform development of client/server applications. It is based on object-oriented technology as agreed upon by Digital Equipment Corporation and Microsoft Corporation. COM defines the interface, similar to an abstract base class, IUnknown, from which all COM-compatible classes are derived.

    02

    VC++编写ActiveX控件

    暑假在做一个项目的时候,本来是用C#.NET来写的一个港口进出闸的流程控制程序,里面涉及一个响应用PLC的采集信息的问题(PLC用串口和工控机相连接),然后思考如何用C#写串口通讯程序,结果师兄在一旁直接用VC++写了一个“*.ocx控件”,并在自己的电脑上进行了测试,完工后就把生成的“*.ocx”控件注册文件复制到了我们的电脑上。我们就在C#.NET程序里面将此控件拖入到主窗口中,然后就能直接利用此控件的事件来捕捉PLC的命令了,感觉好神奇。然后,我对C++的态度有了极大的转变,以前只知道C++写窗口程序是多么麻烦啊(远不如C#.NET来得快和直接),而它的所谓“比较底层,和底层操作系统的关系比C#这些高级语言要密切很多”的好处一直都没有体会到,现在才知道,正是因为C++比较底层,比较基础,所以它可以开发出很多和语言无关的公用程序块,如dll动态链接库和COM组件,原则上,只要你的Windows的系统,用VC++开发出来的这些公用程序块就能被任何语言调用(如果不用MFC框架,而用ATL框架来编写,甚至还可以脱离Windwos系统,不仅仅实现跨语言,甚至跨平台调用,这个笔者就没有仔细研究了)。

    03

    内嵌Activex的Activex插件开发

    介绍:   如今在许多流媒体视频网站(youku,tudou......)我们都会发现,观看视频之前都会有一段时间的广告,甚至在观看视频途中也会插入一些 广告。实现这个效果的可以有多种技术。使用Javascript就可以实现,只需要在同一个位置分别创建两个Object,一个嵌入Flash插件,一个 嵌入 WMP插件,然后切换显示这两个控件即可。   使用COM/Activex技术也可以在同一个控件中实现这样的功能。 插件功能描述:   上周在某个公司碰到这么一个问题,它们需要创建一个插件,内部嵌入一个Flash插件和Windows Media Player插件。然后写一个Web测试页面测试此Activex页面。页面上有三个输入框和一个按钮(Play)。第一个输入框输入falsh URL(.swf),第二个输入框输入.swf播放时间长度(秒),即视频广告时间,第三个输入框输入.wmv URL。点击Play按钮后,页面按钮将三个参数传递给控件,控件优先播放.swf,要布满整个控件的大小。.swf播放指定的时间之后,然后播 放.wmv,wmv也要布满整个控件。

    03

    在Chrome、Firefox、Edge等高版本浏览器中实现在线编辑、审阅Office文档新方案

    在IE、Chrome 45及Firefox 53以下版本的浏览器网页中,可直接或间接调用微软免费开源的ActiveX控件DsoFramer即可嵌入本地安装的Office软件实现在线编辑或审阅Office文档。然而好景不长,从2015年开始Chrome、Firefox等新生代浏览器先后取消了对NPAPI插件的支持,在这些浏览器的后续版本中如何实现就成为了技术难题。IE浏览器又因各种问题导致其不断被用户抛弃,其市场份额已降到前端主流框架直接放弃兼容的地步。而随着Windows系统及Office软件的不断升级,DsoFramer的稳定性和兼容性问题越来越多,不支持64位浏览器不说,也不支持金山WPS及开源的LibreOffice等办公软件,要命的是2008年以来微软再无升级版发布,导致其用于商业用途具有很大风险,除非自己有研发能力解决这些问题。虽然随后有点聚WebOffice控件模仿DsoFramer接力举起免费的大旗,为其收费的电子印章产品导入客户,然而依然无法克服ActiveX控件固有的缺陷,只能在32位的IE浏览器中使用不说,往往还需要修改终端电脑IE的默认安全设置,实施成本高、加载运行时弹警告导致用户体验差,这不现在点聚WebOffice的官方网页和交流论坛也都没了踪影,不再继续维护升级,因为没开放源代码,第三方也无法修改其缺陷,其客户再次被抛弃了。

    03
    领券