Active X組件是充分利用OLE和Active X技術(shù)的自定義組件,微軟公司積極鼓勵把Active X作為一個與應(yīng)用程序無關(guān)的自定義組件。從本質(zhì)上說,Active X組件是一個Active X服務(wù)器,他能夠提供所有的OLE功能和服務(wù),可視化編輯、拖放和OLE自動化。ActiveX控件有屬性(Propertiy)、方法(method)、事件(Event)三個元素構(gòu)成,他一般是以“DLL”擴展名的形式出現(xiàn)的。
這時細心的讀者可能已經(jīng)注意到在.Net FrameWork SDK中的類庫中的類庫文件也是以“DLL”擴展名的形式出現(xiàn)的。那么這二種“DLL”是一種類型的么?答案是否定的。這是因為這些Net FrameWork SDK中的類庫是由Common Language Runtime編譯生成的,這些由Common Language Runtime編譯生成的的代碼就是所謂的受管代碼(Managed Code),而Active X組件不是由Common Language Runtime生成的,而是由譬如:Visual Basic等語言生成的,這些代碼是非受管代碼(Unmanaged Code)。非受管代碼是不能直接被.Net框架中的程序開發(fā)語言直接使用的,即Active X組件不能直接在Visual C#和Visual Basic .Net等程序中使用。而要經(jīng)過一定的轉(zhuǎn)換,把非受管代碼轉(zhuǎn)換成受管代碼,這樣才可以使用。
本文就來探討一下Visual C#中如何進行Active X組件編程。本文將按照以下順序來介紹:首先利用Visual Basic 6.0構(gòu)建一個Active X組件,然后轉(zhuǎn)換這個Active X組件成可以被Visual C#使用的組件,最后在Visual C#中使用此組件。
一. 程序設(shè)計和運行的基本環(huán)境:
(1).視窗2000服務(wù)器版
(2)..Net FrameWork SDK Beta 2 版
(3).Visual Basic 6.0
二.用Visual Basic 6.0構(gòu)建一個Active X組件:
(1).首先打開Visual Basic 6.0,在“文件”菜單中,選擇“新建工程”,出現(xiàn)一個對話框,在對話框中選擇“Active X DLL”,具體如下圖:

(2).然后在“工具”菜單中,選擇“添加過程”,命名過程名稱為“show”。具體如下圖:
然后在此過程中加入以下代碼:
Public Function show ( )
MsgBox ( "這是在Visual C#中使用Active X!" )
End Function
(3).接著選擇“工程”菜單中的“工程屬性”,把剛才新建的過程重命名為“mydll”。如下圖所示:

(4).生成Active X組件,產(chǎn)生“mydll.dll”文件:
這時選擇“文件”菜單中的“生成mydll.dll”,就會在指定的目錄下面產(chǎn)生一個Active X組件,名稱為“mydll.dll”。具體操作如下圖:

此Active X組件的內(nèi)容十分簡單,只有一個show()方法。
三.把非受管代碼的Active X組件轉(zhuǎn)換成受管代碼的類庫:
.Net框架提供了一個轉(zhuǎn)換的程序,通過此程序可以把非受管代碼轉(zhuǎn)換為受管代碼,這個程序的名稱為“tlbimp.exe“。通過下面的命令就可以完成轉(zhuǎn)換:
tlbimp mydll.dll /out:my.dll
此時會產(chǎn)生一個“my.dll”的類庫,這個類庫中定義了一個命名空間為“my”,在此命名空間中定義了一個類“Class1”,這個類有一個方法叫“show”的方法。
四.使用編譯成受管代碼的Active X組件:
其實這樣說已經(jīng)不十分準(zhǔn)確了,因為Active X組件不可能是受管代碼,此時的Active X組件已經(jīng)變成了可以被.Net開發(fā)語言使用的類庫了。這樣說主要是為了更方便理解。有了上面的介紹,可以較方面的完成下列的程序。
using my ;
using System ;
public class Activex
{
public static void Main ( )
{
Class1 s = new Class1 ( ) ;
s.show ( ) ;
}
}
下圖是編譯后程序的運行界面:

五.總結(jié):
Actvie X組件是一個龐大的家族,擁有很多功能強大的組件,充分利用這些Active X組件資源,不僅是對以前的資源的利用,而且有時也能夠解決許多依靠現(xiàn)有的技術(shù),不便于或者難以解決的問題。其實Active X組件在Visual C#中的使用方法和其在Visual Basic .Net中,以及其他.Net開發(fā)語言使用的方法是大同小異的。
新聞熱點
疑難解答
圖片精選