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