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