Windows系统可以说是我们最熟悉的一款桌面操作系统之一了,或多或少,我们都听过或接触过ActiveX控件和DirectX接口。系统或软件出现问题了,我们可能也曾尝试安装过ActiveX控件或修复过DirectX。知其然,更要知其所以然,本文将带你轻松了解掌握ActiveX控件和DirectX接口。
ActiveX和DirectX的定义
ActiveX,由单词“Active”+字母“X”组成,“Active”本身有插件、控件的含义;“X”等价于“N”、“+”,代表很多用途、很多东西。可以这样理解,“ActiveX”概念类似于“互联网+”的概念,可以和非常多的东西或用途组合在一起。
ActiveX根据微软权威定义,是一种基于COM(Component Object Model,组件对象模型)技术的可重用的软件组件,包含用户界面元素、功能模块、数据处理等,广泛用于Windows平台上的应用软件开发。ActiveX控件又被称为OLE控件或OCX控件。
DirectX,同样可拆分成“Direct”和“X”,概念类似,“Direct”本身意思是直接,表明通过这些DirectX接口可以直接访问底层硬件资源。
DirectX是一种与硬件设备无关的图形应用程序接口(API),由一系列的动态连接库dll文件组成。开发人员根据这些封装好的dll文件来访问调用底层硬件,而无需关注具体的物理设备型号、性能、参数等差异,是一套高效便捷的多媒体接口方案。
通过以上定义,可知ActiveX和DirectX虽然都是微软为了便于开发人员推出的技术方案 ,但它们有本质区别。ActiveX是一种平台型的插件、组件,开发人员基于该平台实现想要的功能;而DirectX却是一组供开发人员用于访问调用底层硬件的接口,开发人员可以基于其他任意开发平台使用。DirectX的开发自由度远高于ActiveX。
ActiveX控件和常规软件的区别:
和常规软件一样,ActiveX控件也可以有UI界面与用户进行交互。它们的主要区别是,ActiveX控件主要用于协调不同软件间数据处理,或者协调操作系统与外部硬件(比如各种传感器等)之间数据通信,会与操作系统频繁的打交道;而常规软件通常需要调用第三方接口才能与操作系统互通。
ActiveX控件某种程度上可以理解为一类特殊的“中间件”,主要负责沟通传递协调,它与操作系统的交互能力和效率要比普通常规软件高的多的多。
ActiveX和DirectX的主要用途
ActiveX控件(OCX控件)设计初衷是为了扩展 IE 浏览器功能,但后续主要靠办公自动化、图形设计、多媒体播放、数据库连接管理和硬件驱动调参等方面发展壮大的。据我了解,ActiveX控件曾广泛用于地磅、打印机等硬件设备的驱动调参等,也曾大量应用于网页支付环境安全检测。
DirectX接口推出的主要目的是为了增强Windows 3.1系统在图形、声音等多媒体方面的处理能力,它包含Direct Graphic(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多个组件。但是和ActiveX一样,后续的发展慢慢偏离了设计初衷,因DirectX在3D图形方面的凸出表现,当前DirectX接口已主要用于3D图形显示方面了,特别是广泛用于游戏领域。
ActiveX和DirectX的安装使用
ActiveX是一个泛概念,我们真正需要安装和使用的对象是开发人员基于ActiveX组件开发完成的各种OCX控件。OCX有“注册”和“注销”两个动作,主要使用 regsvr32 命令来执行, “注册”主要用于安装和使用OCX控件,“注销”主要用于卸载OCX控件。
DirectX是一组包含3D图形、音频等多媒体处理的dll文件集合,可到微软官网下载不同版本的DirectX(不少系统镜像包会自动集成DirectX,为普通用户省了麻烦)。DirectX能够向下兼容旧版本,所以安装时尽量选择较新的DirectX版本。
DirectX还有一款非常流行知名的自动检测修复工具,DirectX Repair,如果计算机因缺失DirectX组件无法正常运行3D游戏时,用户可搜索下载该工具进行修复安装。
ActiveX和DirectX的发展展望
ActiveX控件在10-20年前是非常流行的技术,但因其在安全性(直接在客户端上运行)和兼容性(部分控件会“挑”系统版本和浏览器版本)方面表现比较糟糕,现在已逐渐被如 Html5、JS、.NET Framework等技术替代了。
DirectX目前的地位还是如日中天的,各种3D游戏大作在高频使用,微软官方也在积极的更新维护,是一套非常成熟且被广泛接受的Windows平台接口调用库。