東莞長(zhǎng)安網(wǎng)站建設(shè)鄭州網(wǎng)絡(luò)營(yíng)銷(xiāo)
一、OCX組件的來(lái)歷
一般的開(kāi)發(fā)工具都會(huì)提供一些標(biāo)準(zhǔn)控件,但不管標(biāo)準(zhǔn)控件多么強(qiáng)大、多么完善,都不能完全滿足用戶(hù)的需要。所以易語(yǔ)言就提供一個(gè)接口,允許用戶(hù)編寫(xiě)自己的控件插入到易語(yǔ)言中使用。用戶(hù)編寫(xiě)自己的控件在使用方法上同標(biāo)準(zhǔn)控件是相同。按照易語(yǔ)言的接口標(biāo)準(zhǔn)編寫(xiě)的控件就是OCX。由于使用OCX可以節(jié)省開(kāi)發(fā)軟件的時(shí)間,所以現(xiàn)在幾乎所有開(kāi)發(fā)工具都允許用戶(hù)使用OCX來(lái)增強(qiáng)其功能。后來(lái)隨著Internet的流行,微軟又讓網(wǎng)頁(yè)中可以嵌入OCX,并稱(chēng)其為?ActiveX控件。目前可以編寫(xiě)OCX的工具包括VB、VC、Delphi。易語(yǔ)言也即將支持OCX。
二、OLE和OCX的關(guān)系
OLE和OCX通稱(chēng)對(duì)象鏈接與嵌入。易語(yǔ)言已通過(guò)超級(jí)鏈接框等實(shí)現(xiàn)很多對(duì)象的鏈接功能,對(duì)象的嵌入易語(yǔ)言也即將支持。?OLE?與OCX的應(yīng)用主要是源于將多個(gè)應(yīng)用信息源組合到一起的目標(biāo),OCX即將在易語(yǔ)言中得到廣泛的應(yīng)用,因?yàn)樗芨玫呐c易語(yǔ)言的應(yīng)用程序相結(jié)合,從而實(shí)現(xiàn)易語(yǔ)言不好實(shí)現(xiàn)或是很難實(shí)現(xiàn)的功能。實(shí)際上,易語(yǔ)言本身以及Visual Basic等等其它程序會(huì)提供多處實(shí)現(xiàn)特定功能的OCX控件。通過(guò)它們,我們可以非常容易的實(shí)現(xiàn)一些易語(yǔ)言本身不能實(shí)現(xiàn)的功能。
三、控件與DLL的關(guān)系
組件的前身是動(dòng)態(tài)鏈接庫(kù)(DLL),DLL使我們能夠用一種語(yǔ)言開(kāi)發(fā)一個(gè)可以用于任何其他語(yǔ)言的過(guò)程庫(kù)。DLL的另一個(gè)強(qiáng)大的功能是在運(yùn)行期間被加載的,這使得我們能夠?qū)㈤_(kāi)發(fā)任務(wù)劃分為一個(gè)個(gè)組件而不必開(kāi)發(fā)并靜態(tài)鏈接一個(gè)大型應(yīng)用程序。
四、什么是ActiveX插件(控件)?
根據(jù)微軟權(quán)威的軟件開(kāi)發(fā)指南MSDN(Microsoft Developer Network)的定義,ActiveX插件以前也叫做OLE控件或OCX控件,它是一些軟件組件或?qū)ο?#xff0c;可以將其插入到WEB網(wǎng)頁(yè)或其它應(yīng)用程序中。ActiveX?(COM)技術(shù)是一種嵌入式程序技術(shù),它其實(shí)就是OLE和?OCX的融合。
ActiveX是Microsoft提出的一組使用COM(Component Object Model,部件對(duì)象模型)使得軟件部件在網(wǎng)絡(luò)環(huán)境中進(jìn)行交互的技術(shù)。它與具體的編程語(yǔ)言無(wú)關(guān)。作為針對(duì)Internet應(yīng)用開(kāi)發(fā)的技術(shù),ActiveX被廣泛應(yīng)用于WEB服務(wù)器以及客戶(hù)端的各個(gè)方面。同時(shí),ActiveX技術(shù)也被用于方便地創(chuàng)建普通的桌面應(yīng)用程序。在Applet中可以使用ActiveX技術(shù) ,如直接嵌入?ActiveX控制,或者以ActiveX技術(shù)為橋梁,將其它開(kāi)發(fā)商提供的多種語(yǔ)言的程序?qū)ο蠹傻?span lang="EN-US" style="padding:0px; margin:0px">Java中。與Java的字節(jié)碼技術(shù)相比,ActiveX提供了“代碼簽名?”(Code Signing)技術(shù)保證其安全性。
ActiveX是Microsoft的元素軟件標(biāo)準(zhǔn)。簡(jiǎn)單地說(shuō),ActiveX技術(shù)是一種共享程序數(shù)據(jù)和功能的技術(shù)。它由微軟提出并大力推廣,并已成為事實(shí)上的標(biāo)準(zhǔn)。?ActiveX?技術(shù)是Microsoft對(duì)OLE技術(shù)的更新和發(fā)展,Microsoft公司為了適應(yīng)網(wǎng)絡(luò)的高速發(fā)展把它的OLE技術(shù)和OCX技術(shù)融為一體并加以改進(jìn)形成聯(lián)合標(biāo)準(zhǔn),改進(jìn)之后賦予新名字ActiveX。也就是說(shuō),ActiveX中涵蓋了OLE的所有技術(shù)和功能,同時(shí)又具有許多新的特性,以適應(yīng)網(wǎng)絡(luò)發(fā)展的需要。
ActiveX指的是一組包括控件、DLL和ActiveX文檔的組件,它通常以動(dòng)態(tài)鏈接庫(kù)的形式存在,其設(shè)計(jì)思想是將一個(gè)程序(比如Flash動(dòng)畫(huà))嵌入到另一個(gè)程序中(這個(gè)程序通常被稱(chēng)做容器,比如Authorware、Delphi、VB、VC、Internet Explorer等)。借助這種技術(shù)使得用戶(hù)在一個(gè)程序中所創(chuàng)建的信息可以被集成到其它程序所產(chǎn)生的文檔中。.這樣就可使它(如Flash動(dòng)畫(huà))可以隨意地應(yīng)用到各種場(chǎng)合。?ActiveX控件的數(shù)據(jù)輸入和函數(shù)功能執(zhí)行都必須通過(guò)容器,因此ActiveX控件和容器之間必須有一些特定的接口協(xié)議。
ActiveX控件必須具備如下的性能機(jī)制:
屬性和方法:ActiveX控件必須提供屬性的名稱(chēng)、方法的名稱(chēng)及參數(shù),通過(guò)這項(xiàng)機(jī)制,容器可以存取和改變ActiveX控件的屬性參數(shù)。
事件:ActiveX控件由這項(xiàng)機(jī)制通知容器在ActiveX控件中發(fā)生的事件,比如屬性參數(shù)的改變,用戶(hù)按下鼠標(biāo)左鍵等。 雖然在本質(zhì)上ActiveX和OLE是同一種技術(shù)(實(shí)現(xiàn)不同程序的數(shù)據(jù)和功能的共享),但其目的有所差別。
ActiveX的目的主要是共享程序模塊之間的計(jì)算功能,生成一些專(zhuān)門(mén)的可以嵌入其他程序中的“小程序”,例如Microsoft web瀏覽器控件可以使得別的應(yīng)用程序能夠?yàn)g覽(僅僅是瀏覽而不是創(chuàng)建)Web網(wǎng)頁(yè)。?ActiveX控件是一個(gè)模塊化的靈活對(duì)象,如果某個(gè)應(yīng)用程序或網(wǎng)頁(yè)需要增加一項(xiàng)特殊的功能,則無(wú)須重寫(xiě)整個(gè)程序,只要靈活地插入一個(gè)具有此項(xiàng)功能的ActiveX控件即可實(shí)現(xiàn),ActiveX的優(yōu)勢(shì)還在于它的動(dòng)態(tài)可交互性,用戶(hù)可以動(dòng)態(tài)地在使用過(guò)程中,通過(guò)改變它的屬性和參數(shù),在應(yīng)用程序中實(shí)現(xiàn)自己的特殊要求。
五、什么是COM?
為了提供使對(duì)象能夠與主應(yīng)用程序通信的一種標(biāo)準(zhǔn),微軟原來(lái)引入了對(duì)象鏈接和嵌入(OLE)。原來(lái)規(guī)范的目標(biāo)是提供一種途徑,使應(yīng)用程序,如Excel能夠?qū)㈦娮颖砀袂度氲狡渌С?span lang="EN-US" style="padding:0px; margin:0px">OLE標(biāo)準(zhǔn)的應(yīng)用程序中。那時(shí),人們認(rèn)識(shí)到,OLE支持一種技術(shù)的基礎(chǔ),這種技術(shù)使得能夠共享類(lèi)屬的對(duì)象,即組件對(duì)象模型(COM)。這種概念用于為OCX組件創(chuàng)建一種組件規(guī)范。這將我們帶到了當(dāng)前的標(biāo)準(zhǔn)ActiveX和ActiveX控件,OLE和OCX的發(fā)展最終形成了?COM的頂尖產(chǎn)物。 可以將COM看作是在兩塊代碼之間共享組件的二進(jìn)制標(biāo)準(zhǔn)。COM根據(jù)對(duì)象可以完成的功能使得對(duì)象實(shí)現(xiàn)抽象化。對(duì)象可以完成的功能在其接口部分描述。接口就是對(duì)象可以實(shí)現(xiàn)的一組在邏輯上相關(guān)功能的訪問(wèn)方法。每個(gè)對(duì)象都擁有一個(gè)唯一的類(lèi)ID(CLSID),它使用任意的一組接口。所有類(lèi)必須具有IUNKNOWN接口,這個(gè)接口又可以被用于訪問(wèn)這個(gè)類(lèi)支持的任何接口。這是一種功能強(qiáng)大的對(duì)象模型,因?yàn)樗箲?yīng)用程序能夠在運(yùn)行過(guò)程中確定任意一個(gè)對(duì)象是否可以完成某一項(xiàng)任務(wù)。
COM對(duì)象是通過(guò)幾個(gè)方法來(lái)實(shí)現(xiàn)的??梢詫?span lang="EN-US" style="padding:0px; margin:0px">COM對(duì)象編譯成?DLL或OCX,它們可以與調(diào)用應(yīng)用程序在相同的進(jìn)程空間中運(yùn)行。COM對(duì)象還可以象編譯過(guò)的可執(zhí)行文件一樣在它自己的進(jìn)程空間中運(yùn)行。利用分布式COM?(DCOM),對(duì)象可以運(yùn)行在不同的機(jī)器上,即可以運(yùn)行在世界的任何位置。
盡管COM對(duì)象的實(shí)現(xiàn)代碼可能處于不同的進(jìn)程中或不同的機(jī)器上,但COM對(duì)象系統(tǒng)服務(wù)去除了調(diào)用COM對(duì)象的復(fù)雜性。ActiveX組件是COM對(duì)象,這些對(duì)象實(shí)現(xiàn)了一套基本的接口,使組件能夠被嵌入到可以主控ActiveX組件的應(yīng)用程序中去。
六、OLE與COM的關(guān)系
組件對(duì)象模型COM(Component Object Model)是OLE的心臟,它不但提供了一個(gè)實(shí)現(xiàn)OLE的框架,還為一整類(lèi)新軟件提出了一種全新的設(shè)計(jì)思想。它是一種面向?qū)ο蟮慕Y(jié)構(gòu),定義了一套對(duì)象間相互通信的標(biāo)準(zhǔn)方式,規(guī)定了如何使一些小的、定義良好的軟件模塊在系統(tǒng)中共存并充分地相互作用。依照這種結(jié)構(gòu),可以將若干元件組合起來(lái),以建立更大的和更復(fù)雜的系統(tǒng)。
七、ActiveX的來(lái)歷是怎樣的
ActiveX的演變最早可以回溯到早期的剪切和粘貼以及后來(lái)的OLE(Object Link and Ember——對(duì)象的鏈接與嵌入)技術(shù)。實(shí)質(zhì)上,ActiveX已經(jīng)不僅僅是一個(gè)技術(shù)上的問(wèn)題,而是微軟的整個(gè)Internet戰(zhàn)略的中心環(huán)節(jié)。微軟把它的OLE和OCX技術(shù)融為一體并加以改進(jìn),將所形成的聯(lián)合標(biāo)準(zhǔn)命名為ActiveX。ActiveX把控件規(guī)范得更加精練,使得這些控件更加小巧而且效率更高,同時(shí)加強(qiáng)了其接口對(duì)數(shù)據(jù)和特性的管理。ActiveX可以幫助應(yīng)用程序開(kāi)發(fā)者、Web網(wǎng)頁(yè)制作者建立動(dòng)態(tài)的Internet工具、網(wǎng)頁(yè)和站點(diǎn)。實(shí)際上可以將Microsoft提供的ActiveX控件看成是一個(gè)小的應(yīng)用程序庫(kù)。這些小程序?qū)ν馓峁┙涌?#xff0c;可以編寫(xiě)腳本語(yǔ)言(如用Vbscript等語(yǔ)言編寫(xiě))并對(duì)其進(jìn)行控制,這樣就能使網(wǎng)頁(yè)更加生動(dòng)。
八、OLE控件的宗旨
OLE控件的思想在于:開(kāi)發(fā)出即插即用的可重復(fù)利用的代碼,使第三方用戶(hù)開(kāi)發(fā)的控件很容易在自己的開(kāi)發(fā)環(huán)境中得到應(yīng)用。它的實(shí)質(zhì)就是,用現(xiàn)有構(gòu)件(控件)構(gòu)造程序,即構(gòu)件式軟件。
九、對(duì)象嵌入(OCX)通俗的叫法
我們平常所說(shuō)的窗口套窗口就是對(duì)象嵌入的一種。