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
構建一個Active X組件
然後轉換這個Active X組件成可以被Visual C#使用的組件
最後在Visual C#中使用此組件
一 程序設計和運行的基本環境
()視窗服務器版
()Net FrameWork SDK Beta 版
()Visual Basic
二用Visual Basic 構建一個Active X組件
()首先打開Visual Basic 在文件菜單中選擇新建工程出現一個對話框在對話框中選擇Active X DLL具體如下圖
()然後在工具菜單中選擇添加過程命名過程名稱為show具體如下圖
然後在此過程中加入以下代碼
Public Function show ( )
MsgBox ( 這是在Visual C#中使用Active X! )
End Function
()接著選擇工程菜單中的工程屬性把剛才新建的過程重命名為mydll如下圖所示
()生成Active X組件產生mydlldll文件
這時選擇文件菜單中的生成mydlldll就會在指定的目錄下面產生一個Active X組件名稱為mydlldll具體操作如下圖
此Active X組件的內容十分簡單只有一個show()方法
三把非受管代碼的Active X組件轉換成受管代碼的類庫
Net框架提供了一個轉換的程序通過此程序可以把非受管代碼轉換為受管代碼這個程序的名稱為tlbimpexe通過下面的命令就可以完成轉換
tlbimp mydlldll /out:mydll
此時會產生一個mydll的類庫這個類庫中定義了一個命名空間為my在此命名空間中定義了一個類Class這個類有一個方法叫show的方法
四使用編譯成受管代碼的Active X組件
其實這樣說已經不十分准確了因為Active X組件不可能是受管代碼此時的Active X組件已經變成了可以被Net開發語言使用的類庫了這樣說主要是為了更方便理解有了上面的介紹可以較方面的完成下列的程序
using my ;
using System ;
public class Activex
{
public static void Main ( )
{
Class s = new Class ( ) ;
sshow ( ) ;
}
}
下圖是編譯後程序的運行界面
五總結
Actvie X組件是一個龐大的家族擁有很多功能強大的組件充分利用這些Active X組件資源不僅是對以前的資源的利用而且有時也能夠解決許多依靠現有的技術不便於或者難以解決的問題其實Active X組件在Visual C#中的使用方法和其在Visual Basic Net中以及其他Net開發語言使用的方法是大同小異的
From:http://tw.wingwit.com/Article/program/net/201311/13225.html