OCX控件(组件)的相关知识

一、OCX组件的来历是怎样的?

一般的开发工具都会提供一些标准控件,但不管标准控件多么强大、多么完善,都不能完全满足用户的需要。所以易语言就提供一个接口,允许用户编写自己的控件插入到易语言中使用。用户编写自己的控件在使用方法上同标准控件是相同。按照易语言的接口标准编写的控件就是OCX。由于使用OCX可以节省开发软件的时间,所以现在几乎所有开发工具都允许用户使用OCX来增强其功能。后来随着Internet的流行,微软又让网页中可以嵌入OCX,并称其为ActiveX控件。目前可以编写OCX的工具包括VB、VC、Delphi。易语言也即将支持OCX。

二、OLE和OCX的关系是什么?

OLE和OCX通称对象链接与嵌入。易语言已通过超级链接框等实现很多对象的链接功能,对象的嵌入易语言也即将支持。OLE与OCX的应用主要是源于将多个应用信息源组合到一起的目标,OCX即将在易语言中得到广泛的应用,因为它能更好的与易语言的应用程序相结合,从而实现易语言不好实现或是很难实现的功能。实际上,易语言本身以及Visual Basic等等其它程序会提供多处实现特定功能的OCX控件。通过它们,我们可以非常容易的实现一些易语言本身不能实现的功能。

三、控件与DLL的关系是什么?

组件的前身是动态链接库(DLL),DLL使我们能够用一种语言开发一个可以用于任何其他语言的过程库。DLL的另一个强大的功能是在运行期间被加载的,这使得我们能够将开发任务划分为一个个组件而不必开发并静态链接一个大型应用程序。

四、什么是ActiveX插件(控件)?

根据微软权威的软件开发指南MSDN(Microsoft Developer Network)的定义,ActiveX插件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。 

ActiveX(COM)技术是一种嵌入式程序技术,它其实就是OLE和OCX的融合。ActiveX是Microsoft提出的一组使用COM(ComponentObjectModel,部件对象模型)使得软件部件在网络环境中进行交互的技术。它与具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。同时,ActiveX技术也被用于方便地创建普通的桌面应用程序。在Applet中可以使用ActiveX技术,如直接嵌入ActiveX控制,或者以ActiveX技术为桥梁,将其它开发商提供的多种语言的程序对象集成到Java中。与Java的字节码技术相比,ActiveX提供了“代码签名”(CodeSigning)技术保证其安全性。

ActiveX是Microsoft的元素软件标准。简单地说,ActiveX技术是一种共享程序数据和功能的技术。它由微软提出并大力推广,并已成为事实上的标准。

ActiveX技术是Microsoft对OLE技术的更新和发展,Microsoft公司为了适应网络的高速发展把它的OLE技术和OCX技术融为一体并加以改进形成联合标准,改进之后赋予新名字ActiveX。也就是说,ActiveX中涵盖了OLE的所有技术和功能,同时又具有许多新的特性,以适应网络发展的需要。

ActiveX指的是一组包括控件、DLL和ActiveX文档的组件,它通常以动态链接库的形式存在,其设计思想是将一个程序(比如Flash动画)嵌入到另一个程序中(这个程序通常被称做容器,比如Authorware、Delphi、VB、VC、Internet Explorer等)。借助这种技术使得用户在一个程序中所创建的信息可以被集成到其它程序所产生的文档中。.这样就可使它(如Flash动画)可以随意地应用到各种场合。

ActiveX控件的数据输入和函数功能执行都必须通过容器,因此ActiveX控件和容器之间必须有一些特定的接口协议。ActiveX控件必须具备如下的性能机制:

属性和方法:ActiveX控件必须提供属性的名称、方法的名称及参数,通过这项机制,容器可以存取和改变ActiveX控件的属性参数。

事件:ActiveX控件由这项机制通知容器在ActiveX控件中发生的事件,比如属性参数的改变,用户按下鼠标左键等。

虽然在本质上ActiveX和OLE是同一种技术(实现不同程序的数据和功能的共享),但其目的有所差别。ActiveX的目的主要是共享程序模块之间的计算功能,生成一些专门的可以嵌入其他程序中的“小程序”,例如Microsoft web浏览器控件可以使得别的应用程序能够浏览(仅仅是浏览而不是创建)Web网页。

ActiveX控件是一个模块化的灵活对象,如果某个应用程序或网页需要增加一项特殊的功能,则无须重写整个程序,只要灵活地插入一个具有此项功能的ActiveX控件即可实现,ActiveX的优势还在于它的动态可交互性,用户可以动态地在使用过程中,通过改变它的属性和参数,在应用程序中实现自己的特殊要求。

五、什么是COM?

为了提供使对象能够与主应用程序通信的一种标准,微软原来引入了对象链接和嵌入(OLE)。原来规范的目标是提供一种途径,使应用程序,如Excel能够将电子表格嵌入到其他支持OLE标准的应用程序中。那时,人们认识到,OLE支持一种技术的基础,这种技术使得能够共享类属的对象,即组件对象模型(COM)。这种概念用于为OCX组件创建一种组件规范。这将我们带到了当前的标准ActiveX和ActiveX控件,OLE和OCX的发展最终形成了COM的顶尖产物。

可以将COM看作是在两块代码之间共享组件的二进制标准。COM根据对象可以完成的功能使得对象实现抽象化。对象可以完成的功能在其接口部分描述。接口就是对象可以实现的一组在逻辑上相关功能的访问方法。每个对象都拥有一个唯一的类ID(CLSID),它使用任意的一组接口。所有类必须具有IUNKNOWN接口,这个接口又可以被用于访问这个类支持的任何接口。这是一种功能强大的对象模型,因为它使应用程序能够在运行过程中确定任意一个对象是否可以完成某一项任务。

COM对象是通过几个方法来实现的。可以将COM对象编译成DLL或OCX,它们可以与调用应用程序在相同的进程空间中运行。COM对象还可以象编译过的可执行文件一样在它自己的进程空间中运行。利用分布式COM(DCOM),对象可以运行在不同的机器上,即可以运行在世界的任何位置。尽管COM对象的实现代码可能处于不同的进程中或不同的机器上,但COM对象系统服务去除了调用COM对象的复杂性。ActiveX组件是COM对象,这些对象实现了一套基本的接口,使组件能够被嵌入到可以主控ActiveX组件的应用程序中去。

六、OLE与COM的关系是什么?

组件对象模型COM(Component Object Model)是OLE的心脏,它不但提供了一个实现OLE的框架,还为一整类新软件提出了一种全新的设计思想。它是一种面向对象的结构,定义了一套对象间相互通信的标准方式,规定了如何使一些小的、定义良好的软件模块在系统中共存并充分地相互作用。依照这种结构,可以将若干元件组合起来,以建立更大的和更复杂的系统。

七、ActiveX的来历是怎样的?

ActiveX的演变最早可以回溯到早期的剪切和粘贴以及后来的OLE(Object Link and Ember——对象的链接与嵌入)技术。实质上,ActiveX已经不仅仅是一个技术上的问题,而是微软的整个Internet战略的中心环节。微软把它的OLE和OCX技术融为一体并加以改进,将所形成的联合标准命名为ActiveX。ActiveX把控件规范得更加精练,使得这些控件更加小巧而且效率更高,同时加强了其接口对数据和特性的管理。ActiveX可以帮助应用程序开发者、Web网页制作者建立动态的Internet工具、网页和站点。实际上可以将Microsoft提供的ActiveX控件看成是一个小的应用程序库。这些小程序对外提供接口,可以编写脚本语言(如用Vbscript等语言编写)并对其进行控制,这样就能使网页更加生动。

八、OLE控件的宗旨是什么?

OLE控件的思想在于:开发出即插即用的可重复利用的代码,使第三方用户开发的控件很容易在自己的开发环境中得到应用。它的实质就是,用现有构件(控件)构造程序,即构件式软件。

九、对象嵌入(OCX)通俗的叫法是什么?

我们平常所说的窗口套窗口就是对象嵌入的一种。

相关推荐