在 Microsoft 软件兼容性之外使用 ActiveX 控件的原因?

Reason for using ActiveX controls outside of Microsoft software compatibility?

不幸的是,我继承了一个大量使用 ActiveX 控件的遗留项目。作为一名新的软件工程师,我以前从未需要使用 ActiveX,据我所知,它已经被弃用了。据我了解,它是一种网络技术,但它用于与各种 Microsoft 产品兼容。

这个软件是用来控制一台重型机械的,所以我真的不明白它与网络技术的联系。最终,客户将从我们这里获得一个 DLL,他们将使用它来对机器进行编程。该 DLL 具有控制机器各个部分的低级驱动程序,无论是通过 PCI 还是 RS232。但是,它还会在与机器交互时更新这些 ActiveX 控件。

如果有人对 ActiveX 技术更有经验,我将不胜感激。我能想到的唯一原因是,由于该产品将在工厂环境中使用,也许远程控制可能很重要。我们的大部分产品都使用 SECS/GEM technology.

将控件添加到 Excel 电子表格只会导致页面上出现白色椭圆。此项目中的所有 ActiveX 控件都是如此。

COM 的设计使得客户端可以用任何语言编写,只要它们可以 (a) 查询 COM registry/ODL 接口,以及 (b) 按照 COM 规范编组数据。对于常规的"C" DLL,需要获取每个函数的签名和调用约定,通常带有头文件,然后匹配二进制接口。 COM 试图使这更容易。

ActiveX 被设计为使用 COM 接口构建 OLE 可嵌入 GUI 控件的一种方式。但它也可以用作 "headless" 控件的容器,实际上并不充当用户界面项,以通过 COM 公开 API。最好的例子可能是 ASP 和 ADO(ActiveX 数据对象),尽管还有很多第三方对象。

显然,COM 和 ActiveX 是较旧的技术,其他技术也是近 20 年出现的。