Active X組件是充分利用OLE和Active X技術的自定義組件,微軟公司積極鼓勵把Active X作為一個與應用程序無關的自定義組件。從本質上說,Active X組件是一個Active X服務器,他能夠提供所有的OLE功能和服務,可視化編輯、拖放和OLE自動化。ActiveX控件有屬性(Propertiy)、方法(method)、事件(Event)三個元素構成,他一般是以“DLL”擴展名的形式出現的。
這時細心的讀者可能已經注意到在.Net FrameWork SDK中的類庫中的類庫文件也是以“DLL”擴展名的形式出現的。那么這二種“DLL”是一種類型的么?答案是否定的。這是因為這些Net FrameWork SDK中的類庫是由Common Language Runtime編譯生成的,這些由Common Language Runtime編譯生成的的代碼就是所謂的受管代碼(Managed Code),而Active X組件不是由Common Language Runtime生成的,而是由譬如:Visual Basic等語言生成的,這些代碼是非受管代碼(Unmanaged Code)。非受管代碼是不能直接被.Net框架中的程序開發語言直接使用的,即Active X組件不能直接在Visual C#和Visual Basic .Net等程序中使用。而要經過一定的轉換,把非受管代碼轉換成受管代碼,這樣才可以使用。
本文就來探討一下Visual C#中如何進行Active X組件編程。本文將按照以下順序來介紹:首先利用Visual Basic 6.0構建一個Active X組件,然后轉換這個Active X組件成可以被Visual C#使用的組件,最后在Visual C#中使用此組件。
一. 程序設計和運行的基本環境:
(1).視窗2000服務器版
(2)..Net FrameWork SDK Beta 2 版
(3).Visual Basic 6.0
二.用Visual Basic 6.0構建一個Active X組件:
(1).首先打開Visual Basic 6.0,在“文件”菜單中,選擇“新建工程”,出現一個對話框,在對話框中選擇“Active X DLL”,具體如下圖:
(2).然后在“工具”菜單中,選擇“添加過程”,命名過程名稱為“show”。具體如下圖:
然后在此過程中加入以下代碼:
Public Function show ( )
MsgBox ( "這是在Visual C#中使用Active X!" )
End Function
(3).接著選擇“工程”菜單中的“工程屬性”,把剛才新建的過程重命名為“mydll”。如下圖所示:
(4).生成Active X組件,產生“mydll.dll”文件:
這時選擇“文件”菜單中的“生成mydll.dll”,就會在指定的目錄下面產生一個Active X組件,名稱為“mydll.dll”。具體操作如下圖:
此Active X組件的內容十分簡單,只有一個show()方法。
三.把非受管代碼的Active X組件轉換成受管代碼的類庫:
.Net框架提供了一個轉換的程序,通過此程序可以把非受管代碼轉換為受管代碼,這個程序的名稱為“tlbimp.exe“。通過下面的命令就可以完成轉換:
tlbimp mydll.dll /out:my.dll
此時會產生一個“my.dll”的類庫,這個類庫中定義了一個命名空間為“my”,在此命名空間中定義了一個類“Class1”,這個類有一個方法叫“show”的方法。
四.使用編譯成受管代碼的Active X組件:
其實這樣說已經不十分準確了,因為Active X組件不可能是受管代碼,此時的Active X組件已經變成了可以被.Net開發語言使用的類庫了。這樣說主要是為了更方便理解。有了上面的介紹,可以較方面的完成下列的程序。
using my ;
using System ;
public class Activex
{
public static void Main ( )
{
Class1 s = new Class1 ( ) ;
s.show ( ) ;
}
}
下圖是編譯后程序的運行界面:
五.總結:
Actvie X組件是一個龐大的家族,擁有很多功能強大的組件,充分利用這些Active X組件資源,不僅是對以前的資源的利用,而且有時也能夠解決許多依靠現有的技術,不便于或者難以解決的問題。其實Active X組件在Visual C#中的使用方法和其在Visual Basic .Net中,以及其他.Net開發語言使用的方法是大同小異的。
新聞熱點
疑難解答