熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Visual C#如何使用Active X組件

2022-06-13   來源: .NET編程 
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
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.