考試大計算機等級站整理收集:
名詞解釋:
OLE: (Object linking and embedding對象的鏈接與嵌入)
使得服務(wù)器模塊和客戶模塊通過標(biāo)準(zhǔn)的接口進(jìn)行通訊。兩個模塊可以在同一臺計算機或位于不同的計算機上,位置對用戶來說是無關(guān)緊要的。服務(wù)器模塊實現(xiàn)了一組接口,客戶模塊通過這組接口進(jìn)行通訊。
COM: (Component object modal組件對象模型)
實現(xiàn)了OLE的功能,具體可完成一下功能:
l 編寫供多種語言使用的代碼;
多種語言:指的是建立好的COM組件不在乎訪問它的編程語言,任何一種編程語言只要知道COM組件的接口,訪問是都能完成同樣的功能。
l 創(chuàng)建ActiveX控件;
l 通過OLE Automation操縱其他應(yīng)用程序;
如:Microsoft Excel的OLE編程接口,創(chuàng)建對象后,任何一種程序都可以實現(xiàn)對Excel的操作。
l 與其他計算機上的應(yīng)用程序通訊;
實際為COM接口與接口之間的通訊,因其實現(xiàn)了不同語言、不同計算機的方式,所以實現(xiàn)不同計算機上應(yīng)用程序的通訊也就十分容易。
COM模塊:
COM的模塊指獨立的應(yīng)用程序(EXE)或者動態(tài)連接庫(DLL),在實現(xiàn)COM時,采用DLL方式要比較容易一些。因為:應(yīng)用程序在加載時在內(nèi)存中都是獨立的地址控件,而DLL加載后可以駐留內(nèi)存。當(dāng)多個客戶端調(diào)用COM時,如果采用EXE形式,就會有多個EXE被加載,而且COM處理客戶端的訪問時,也必須在不同的地址空間來回切換,大費周張。而DLL形式永遠(yuǎn)只有一個駐留內(nèi)存,COM只要在相同的內(nèi)存空間中尋找執(zhí)行代碼即可。
逐步深入:
DLL我們都已經(jīng)寫了很多,通常我們寫的DLL都是定義的一些方法或是過程來實現(xiàn)特定的操作,當(dāng)然定義的出口(Exports)也就是這些方法或是過程?,F(xiàn)在我們來寫一個出口為一個類的DLL來展開我們COM編寫的學(xué)習(xí)。
準(zhǔn)備工作:
打開Delphi,選擇File\New\Others,選擇DLL Wizard自動創(chuàng)建一個DLL工程,選擇File\New\Unit新建一個單元,全部保存。
寫代碼:
在新建的Unit中定義一個抽象類:
Type
TCalculator=Class
Public
Function Addition (Op1, Op2: Double): Double ; virtual; abstract;
End;
這個類很簡單,就定義了一個抽象方法實現(xiàn)兩個數(shù)的相加。
定義抽象類后,定義一個類來實現(xiàn)這個抽象類:
Type
TCalcImple=Class (TCalculator)
Public
Function Addition (Op1, Op2: Double): Double; Override;
End;
方法實現(xiàn):
Function TCalcImple.Addition(Op1, Op2: Double): Double;
Begin
Result: =Op1+Op2;
End;
當(dāng)然我們還差一個創(chuàng)建這個類的方法,我們在加入如下:
Function CreateCalcImple:TCalcImple;stdcall;
Begin
Result:=TCalcImple.Create;
End;
名詞解釋:
OLE: (Object linking and embedding對象的鏈接與嵌入)
使得服務(wù)器模塊和客戶模塊通過標(biāo)準(zhǔn)的接口進(jìn)行通訊。兩個模塊可以在同一臺計算機或位于不同的計算機上,位置對用戶來說是無關(guān)緊要的。服務(wù)器模塊實現(xiàn)了一組接口,客戶模塊通過這組接口進(jìn)行通訊。
COM: (Component object modal組件對象模型)
實現(xiàn)了OLE的功能,具體可完成一下功能:
l 編寫供多種語言使用的代碼;
多種語言:指的是建立好的COM組件不在乎訪問它的編程語言,任何一種編程語言只要知道COM組件的接口,訪問是都能完成同樣的功能。
l 創(chuàng)建ActiveX控件;
l 通過OLE Automation操縱其他應(yīng)用程序;
如:Microsoft Excel的OLE編程接口,創(chuàng)建對象后,任何一種程序都可以實現(xiàn)對Excel的操作。
l 與其他計算機上的應(yīng)用程序通訊;
實際為COM接口與接口之間的通訊,因其實現(xiàn)了不同語言、不同計算機的方式,所以實現(xiàn)不同計算機上應(yīng)用程序的通訊也就十分容易。
COM模塊:
COM的模塊指獨立的應(yīng)用程序(EXE)或者動態(tài)連接庫(DLL),在實現(xiàn)COM時,采用DLL方式要比較容易一些。因為:應(yīng)用程序在加載時在內(nèi)存中都是獨立的地址控件,而DLL加載后可以駐留內(nèi)存。當(dāng)多個客戶端調(diào)用COM時,如果采用EXE形式,就會有多個EXE被加載,而且COM處理客戶端的訪問時,也必須在不同的地址空間來回切換,大費周張。而DLL形式永遠(yuǎn)只有一個駐留內(nèi)存,COM只要在相同的內(nèi)存空間中尋找執(zhí)行代碼即可。
逐步深入:
DLL我們都已經(jīng)寫了很多,通常我們寫的DLL都是定義的一些方法或是過程來實現(xiàn)特定的操作,當(dāng)然定義的出口(Exports)也就是這些方法或是過程?,F(xiàn)在我們來寫一個出口為一個類的DLL來展開我們COM編寫的學(xué)習(xí)。
準(zhǔn)備工作:
打開Delphi,選擇File\New\Others,選擇DLL Wizard自動創(chuàng)建一個DLL工程,選擇File\New\Unit新建一個單元,全部保存。
寫代碼:
在新建的Unit中定義一個抽象類:
Type
TCalculator=Class
Public
Function Addition (Op1, Op2: Double): Double ; virtual; abstract;
End;
這個類很簡單,就定義了一個抽象方法實現(xiàn)兩個數(shù)的相加。
定義抽象類后,定義一個類來實現(xiàn)這個抽象類:
Type
TCalcImple=Class (TCalculator)
Public
Function Addition (Op1, Op2: Double): Double; Override;
End;
方法實現(xiàn):
Function TCalcImple.Addition(Op1, Op2: Double): Double;
Begin
Result: =Op1+Op2;
End;
當(dāng)然我們還差一個創(chuàng)建這個類的方法,我們在加入如下:
Function CreateCalcImple:TCalcImple;stdcall;
Begin
Result:=TCalcImple.Create;
End;