程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> 用Visual C#做DLL文件

用Visual C#做DLL文件

編輯:C#基礎知識

  作為軟件設計和開發人員大都有過使用DLL(動態連接庫)的經歷,DLL的產生使得我們的應用程序在可維護性、代碼的重復使用等方面都有了很大的提高。以前用的DLL一般都是用Visual C++、Delphi或者VB等編程語言來編寫的,這種DLL的編寫和使用,我們大都已經比較習慣了。作為新一代的程序開發語言--Visual C#,到底是如何編寫和使用DLL的呢!本文就試著就這方面的問題來進行簡單的介紹。

  Visual C++、Delphi或者VB等編程語言來編寫成的DLL文件,在編譯完成過以後,產生DLL文件已經是一個可以直接供計算機使用的二進制文件。但用Visual C#編譯器生成的受管代碼(managed code)雖然也是二進制文件,但不是可以直接供計算機使用的原始代碼(機器語言代碼)。他實質上是一種中間語言(IL)代碼,這種IL代碼要轉變成可以供計算機直接使用的原始代碼,就需要經過"下一代窗口服務"( Next Generation Windows Services,簡寫為NGWS ) runtime的即時編譯器(即JIT)進行編譯。

  經過以上比較,我們可以看出,用Visual C#生成的DLL文件已經和以前的DLL文件有了本質上的區別。用Visual C#生成的DLL文件在程序設計中更多的表現為一種類(Class)或者類庫(Class Library)。本文就試著通過一個具體程序的例子,按照下面步驟來具體介紹:

  (1).創建一個DLL源代碼。

  (2).編譯此DLL源代碼,生成DLL文件。

  (3).用此DLL來創建一個簡單的客戶端程序。

  一. 程序設計開發及運行環境:

  (1).微軟視窗2000專業版

  (2)..Net FrameWork SDK Beta 2

  二. 創建一個DLL源代碼(dll.cs)

  由於用Visual C#創建的DLL,此DLL是不需要執行的界面,所以在DLL文件就沒有必要定義Main ( )函數,來作為應用程序執行的入口。Dll.cs的源程序代碼如下:

  Dll.cs:

  

namespace Dll file://定義了名稱空間,在調用DLL的時候就要導入此名稱空間。
{
 public class Show file://定義了一個類,在程序中就要來繼承此類。
 { 
  public string Messages ( )
  file://定義了一個方法,此方法的作用就是返回下面字符串。
  {
   return "歡迎使用Visual C#做的DLL文件!" ;
  }
 }
}

  通過此DLL的源程序可以看出,此DLL表現為一個小型的類庫,這是因為在此DLL中封裝了名字叫DLL的名稱空間,在此名稱空間中又定義了一個Show類,在此類中有一個方法就是Messages。雖然定義的內容相對少了些,但卻相當完全。

  三. 編譯此DLL源代碼,生成DLL文件

  要把DLL源代碼編譯成DLL文件,就需要配置好編譯器Csc.exe的參數和開關。我們知道編譯器Csc.exe可以把源代碼編譯成四種不同的文件,分別是控制應用程序、代碼庫、windows應用程序、模塊程序。編譯命令具體如下:

  

csc /target:exe myProj.cs // 創建一個myProj.exe控制程序
csc /target:winexe myProject.cs file://創建一個myProj.exe的windows程序
csc /target:library myProject.cs file://創建一個myProj.dll代碼庫
csc /target:module myProject.cs file://創建一個myProj.dll模塊

  對於如何配置編譯器Csc.exe的其他參數和開關,可以參考稍前發表的文章《如何用CSC.exe來編譯Visual C#的代碼文件》,在此篇文章裡面有比較詳細的介紹。通過以下編譯命令可以得到mydll.dll文件:

  

Csc /r:system.dll /t:library /out:mydll.dll dll.cs

  四.用此DLL來創建一個簡單的客戶端程序(test.exe)

  通過以上的源程序代碼可以看到生成的mydll.dll文件雖然是一個以DLL為擴展名,實際上是一個類庫,和我們經常用到的System.dll、System.Windows.Forms.dll等這些文件相似。同樣用mydll.dll創建程序也和用以上這些類庫創建程序相類似。就是第一步就是導入此名稱空間--Dll。然後在去繼承裡面封裝好的類--Show,再調用類中定義好的方法--Messages。下面就是按照以上的步驟,創建的客戶端的源程序代碼( test.cs ) :

  

test.cs:
using Dll ; // 導入此名稱空間
using System ;
public class GetMessage
{
 public static void Main ( )
 {
  Show hi = new Show ( ) ; // 繼承名稱空間中定義的Show類
  Console.WriteLine ( hi.Messages ( ) ) ; // 調用此類中的方法
 }
}

  在把test.cs編譯成執行程序中,要在編譯命令中添加一個引用,就是引用mydll.dll文件。具體的編譯命令如下:

  

csc /r:mydll.dll /r:system.dll test.cs

  編譯完成,就會生成test.exe。執行此文件就會得到以下執行界面:

  圖01:在客戶端制作調用DLL的應用程序執行界面

  五.總結:

  通過此篇文章,可以看出用Visual C#制作一個DLL其實並不是一件很復雜的事件,但對DLL的調用卻和以往有了較大區別,其中最主要的原因是,用Visual C#或者其他.Net 程序開發語言制作的DLL和以前的DLL有了實質上的區別。它已經不是嚴格意義上的動態連接庫了,而是一個類或者類庫。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved