Visual C#使用COM組件
Visual C#是微軟推出的新一代程序開(kāi)發(fā)語(yǔ)言,Visual C#實(shí)現(xiàn)許多功能是通過(guò)調(diào)用.Net框架為其中所有.Net程序開(kāi)發(fā)語(yǔ)言提供的一個(gè)公用的軟件包——。Net FrameWork SDK.在這個(gè)軟件包中提供了大量并且十分豐富的類(lèi)庫(kù),可以說(shuō),沒(méi)有這個(gè)軟件開(kāi)發(fā)包,Visual C#就寸步難行,無(wú)法編寫(xiě)哪怕一個(gè)功能十分的程序。但這樣也會(huì)出現(xiàn)一個(gè)問(wèn)題,如果在。Net FrameWork SDK軟件包中沒(méi)有涉及到的功能,而在其他的第三方的COM組件中卻提供了,那么這些組件是否可以被Visual C#使用。答案是:直接使用是不可以的,但這些COM組件經(jīng)過(guò)一定轉(zhuǎn)換后就可以。這種轉(zhuǎn)換就是非受管代碼(Unmanaged Code)到受管代碼(Managed Code)的轉(zhuǎn)換。因?yàn)檫@些COM組件一般都是非受管代碼(Unmanaged Code),而編譯Visual C#文件時(shí)候要使用的類(lèi)庫(kù)卻只能為受管代碼(Managed Code),這就是說(shuō)要在Visual C#中使用那些非受管代碼組件,就必須把這些非受管代碼組件轉(zhuǎn)換成受管代碼組件。在.Net框架中專(zhuān)門(mén)提供了一個(gè)程序“Aximp.exe”來(lái)實(shí)現(xiàn)由 COM組件到WinForm組件的轉(zhuǎn)換。
下面看看如何讓Visual C#使用COM組件的。
一.本文程序設(shè)計(jì)和運(yùn)行的軟件環(huán)境
1 微軟公司視窗2000服務(wù)器版
2 .Net FrameWork SDK Beta 2
二.程序設(shè)計(jì)的思路以及關(guān)鍵步驟的解決方法
1.把轉(zhuǎn)換COM組件為WinForm組件:
其實(shí)實(shí)現(xiàn)這種轉(zhuǎn)換十分的簡(jiǎn)單,我們知道微軟Web瀏覽器COM組件名稱為“shdocvw.dll”,由于我們使用的是視窗2000,所以這個(gè)文件是存放在 “c:\winnt\system32”目錄中,如果你使用的是視窗98或者是視窗Me,那么此組件存放的位置是“c:\windows \system”?!癆ximp.exe”文件后面有許多的參數(shù),你可以通過(guò)“Aximp /?”來(lái)了解。
2.在程序中使用轉(zhuǎn)換后組件:
在“AxSHDocVw.dll”中定義了命名空間“AxSHDocVw”,在此命名空間中定義了一個(gè) “AxWebBrowser”組件,這個(gè)組件中有若干個(gè)方法和屬性,Visual C#就是通過(guò)這些方法和屬性來(lái)實(shí)現(xiàn)瀏覽器的一些基本功能的。使用此瀏覽器組件和使用其他的WinForm組件的過(guò)程是一樣的,首先要導(dǎo)入命名空間,然后在程序中繼承此命名空間中定義的瀏覽器組件,***設(shè)定這個(gè)繼承后的組件的屬性和方法。具體如下:
1).導(dǎo)入命名空間,具體代碼如下:
- using AxSHDocVw ;
2). 繼承此命名空間中定義的瀏覽器組件,具體代碼如下:
- private AxWebBrowser axWebBrowser1 ;
其實(shí)用Visual C#做“瀏覽器”的過(guò)程,也就是Visual C#使用COM組件的過(guò)程。掌握了Visual C#使用COM組件方法,就可以利用Visual C#編寫(xiě)出功能更強(qiáng)大,適應(yīng)性更強(qiáng)的軟件來(lái),但編寫(xiě)的過(guò)程又十分的簡(jiǎn)單。
【編輯推薦】