"世上無(wú)難事,只要肯登攀",所以你要有信心成為一個(gè)COM程序員,而且你一定能。
事實(shí)上,我們每次設(shè)置文本編程控件的Text屬性時(shí),就已經(jīng)在使用COM,同樣在DAO數(shù)據(jù)控件運(yùn)行MoveNext方法時(shí),甚至在使用VB控制字時(shí),也都是在使用COM。
那么,什么是COM呢?
首先,COM是一種通信的方式。
例如,就像我們的電視遙控一樣。當(dāng)我們按下某個(gè)頻道按鈕時(shí),電視頻道立馬切換;而當(dāng)我們按下開(kāi)關(guān)按鈕時(shí),電視立即關(guān)閉等等。其實(shí),我們并不關(guān)心它們是怎樣工作的,我們只知道按下按鈕就能產(chǎn)生某個(gè)動(dòng)作就可以了。
程序的原理也是一樣的。當(dāng)改變文本編程控件的Text屬性時(shí),我們并不知道其中的原理,也許系統(tǒng)內(nèi)部會(huì)調(diào)用幾十個(gè)API函數(shù)也說(shuō)不定?但對(duì)于用戶(hù)來(lái)說(shuō),則只關(guān)心文本編程控件中顯示的文本就可以了。
其次,COM是一種重用代碼的方式。
使用COM的好處是一旦建立COM的通信方式后,可以方便地在任何地方使用多次。例如,當(dāng)用戶(hù)創(chuàng)建一個(gè)用于顯示日期和時(shí)間的COM組件后,就可用于任何程序中的任何地方。不僅VB應(yīng)用程序、Excel程序可以訪問(wèn),而且C++應(yīng)用程序也可以訪問(wèn)它。
所以,COM組件的代碼可重用性是最主要的。
再次,COM是基于實(shí)際對(duì)象的。
用COM創(chuàng)建的大多數(shù)組件是基于實(shí)際對(duì)象的,這就意味著一旦組件被創(chuàng)建,其使用是相當(dāng)容易的。試想一下,如果我們?cè)谟?jì)算機(jī)系統(tǒng)中再添加一個(gè)用戶(hù),又有哪種添加方式如Customer.Add那樣簡(jiǎn)單,是添加數(shù)據(jù)處理代碼包、算法,還是向應(yīng)用程序添加較大的數(shù)據(jù)庫(kù)DLL?很顯然,COM就支持這種簡(jiǎn)單操作。
所以,COM是一種通信方式、一種代碼重用方式以及基于實(shí)際對(duì)象的。
本教程的以后部分中將簡(jiǎn)單討論COM和VB的相關(guān)內(nèi)容,這包括類(lèi)的創(chuàng)建,以及如何將類(lèi)轉(zhuǎn)換成一個(gè)實(shí)際對(duì)象。雖然,這里的內(nèi)容太過(guò)簡(jiǎn)單,但卻是以后COM編程的基礎(chǔ)。
事實(shí)上,我們每次設(shè)置文本編程控件的Text屬性時(shí),就已經(jīng)在使用COM,同樣在DAO數(shù)據(jù)控件運(yùn)行MoveNext方法時(shí),甚至在使用VB控制字時(shí),也都是在使用COM。
那么,什么是COM呢?
首先,COM是一種通信的方式。
例如,就像我們的電視遙控一樣。當(dāng)我們按下某個(gè)頻道按鈕時(shí),電視頻道立馬切換;而當(dāng)我們按下開(kāi)關(guān)按鈕時(shí),電視立即關(guān)閉等等。其實(shí),我們并不關(guān)心它們是怎樣工作的,我們只知道按下按鈕就能產(chǎn)生某個(gè)動(dòng)作就可以了。
程序的原理也是一樣的。當(dāng)改變文本編程控件的Text屬性時(shí),我們并不知道其中的原理,也許系統(tǒng)內(nèi)部會(huì)調(diào)用幾十個(gè)API函數(shù)也說(shuō)不定?但對(duì)于用戶(hù)來(lái)說(shuō),則只關(guān)心文本編程控件中顯示的文本就可以了。
其次,COM是一種重用代碼的方式。
使用COM的好處是一旦建立COM的通信方式后,可以方便地在任何地方使用多次。例如,當(dāng)用戶(hù)創(chuàng)建一個(gè)用于顯示日期和時(shí)間的COM組件后,就可用于任何程序中的任何地方。不僅VB應(yīng)用程序、Excel程序可以訪問(wèn),而且C++應(yīng)用程序也可以訪問(wèn)它。
所以,COM組件的代碼可重用性是最主要的。
再次,COM是基于實(shí)際對(duì)象的。
用COM創(chuàng)建的大多數(shù)組件是基于實(shí)際對(duì)象的,這就意味著一旦組件被創(chuàng)建,其使用是相當(dāng)容易的。試想一下,如果我們?cè)谟?jì)算機(jī)系統(tǒng)中再添加一個(gè)用戶(hù),又有哪種添加方式如Customer.Add那樣簡(jiǎn)單,是添加數(shù)據(jù)處理代碼包、算法,還是向應(yīng)用程序添加較大的數(shù)據(jù)庫(kù)DLL?很顯然,COM就支持這種簡(jiǎn)單操作。
所以,COM是一種通信方式、一種代碼重用方式以及基于實(shí)際對(duì)象的。
本教程的以后部分中將簡(jiǎn)單討論COM和VB的相關(guān)內(nèi)容,這包括類(lèi)的創(chuàng)建,以及如何將類(lèi)轉(zhuǎn)換成一個(gè)實(shí)際對(duì)象。雖然,這里的內(nèi)容太過(guò)簡(jiǎn)單,但卻是以后COM編程的基礎(chǔ)。