使用C#創(chuàng)建一個DLL文件是非常簡單的事情。相信我,這比使用VC++要簡單的多。我把這個教程分成兩部分。(1)建立一個類庫;(2)建立客戶端程序來檢測這個DLL。
第一部分:創(chuàng)建一個類庫
1、創(chuàng)建一個空類庫項目:
選擇“文件”->新建->項目->Visual C#項目->類庫(Class Library). 輸入項目的名字、使用【瀏覽】按鈕選擇合適的路徑,單擊確定(OK).如圖1.
圖 1.
2、項目及其文件
項目瀏覽器中顯示本項目添加了兩個C#類. 第一個是 AssemblyInfo.cs,第二個是Class1.cs. 我們不必關心AssemblyInfo. 我們只把注意力集中在Class1.cs上.如圖2.
圖 2.
關于項目中的命名空間
雙擊Class1.cs文件,你會看到一個mcMath命名空間(namespace)(注意:原文作者使用的項目名稱為mcMath,因此自動生成的命名空間名稱為mcMath,根據(jù)你設置的項目名稱不同,這里的命名空間名字不會一樣。) 在客戶端程序中可以通過引用這個命名空間而使用這里面的類.
using System;
namespace mcMath
{
/// <summary>
/// Summary description for Class1.
/// </summary>
public class Class1
{
public Class1()
{
//
// TODO: Add constructor logic here
//
}
}
}
通過生成這個新建立的項目確認沒有任何問題. 生成項目后,在你的項目中的“bin/debug “文件夾中,你會看到一個mcMath.dll文件.
3、為類庫添加方法
通過視圖菜單打開類視圖. 你馬上會看到類Class1沒有任何方法和屬性。就讓我們?yōu)槠涮砑右粋€方法和屬性吧。參加圖 3.
圖 3.
在類Class1上右擊,選擇“添加->添加方法... ” 參加圖4.
圖4.
將會彈出C#方法設計器. 填入方法名稱、訪問類型、返回值類型、參數(shù)名字和注釋。使用【添加】或【移除】按鈕從參數(shù)列表中添加或刪除參數(shù)。這里添加了一個無參測試方法:mcTestMethod. 參加下圖5.
圖5.
我準備再添加一個方法: long Add( long val1, long val2 ). 這個方法是通過兩個數(shù)字然后輸出他們的和.完成設置單擊“完成”. 參見圖6.
圖 6.
上面的操作向類中添加兩個方法,如下面所示:
4、添加屬性
用同樣的方法打開C# 屬性向?qū)В蝾愔刑砑右粋€屬性,參見圖7.
圖 7.
本操作將打開C#屬性向?qū)?。在這里,你可以鍵入你的屬性名稱、類型和訪問類型。同時,你可以設置get訪問器、set訪問器或同時選擇兩者。你也可以指定屬性是靜態(tài)的還是虛擬的。本類中添加了一個共有的Extra屬性,類型為bool型,并選擇get/set.如圖8.
圖 8.
添加完一個方法和一個屬性后,類視圖中的樣子如圖9所示(圖中已展開了類節(jié)點).
圖 9.
如果你仔細地看一下Class1類,向?qū)槲覀兲砑恿藘蓚€方法.
/// <summary>
/// //This is a test property
/// </summary>
public bool Extra
{
get
{
return true;
}
set
{
}
}
5、為類添加其他代碼
現(xiàn)在為方法和屬性添加代碼。并且我想把Class1更名為mcMathComp,因為 Class1含義不清,當你在客戶端應用程序中使用這個類時會產(chǎn)生一些問題。確定你已改變了類的名字及它的結構.
注意:我不準備為mcTestMethod方法添加任何代碼,如果你想那可以添加一些。
using System;
namespace mcMath
{
/// <summary>
/// Summary description for Class1.
/// </summary>
public class mcMathComp
{
private bool bTest = false;
public mcMathComp()
{
// TODO: Add constructor logic here
}
/// <summary>
/// //This is a test method
/// </summary>
public void mcTestMethod()
{ }
public long Add(long val1, long val2)
{
return val1 + val2;
}
/// <summary>
/// //This is a test property
/// </summary>
public bool Extra
{
get
{
return bTest;
}
set
{
bTest = Extra ;
}
}
}
}
6、生成 DLL
現(xiàn)在生成DLL,并檢查你項目中的 bin/debug 目錄. 你會看到生成的DLL文件。是不是非常簡單? Huh? :).
第二部分:建立客戶端應用程序
在C#中調(diào)用一個DLL文件中的方法和屬性也是很簡單的事情。按照下面的步驟來使用DLL,看看它有多么的簡單。
1、創(chuàng)建控制臺應用程序
選擇 文件->新建->項目->Visual C# 項目->控制臺應用程序. 這里將在控制臺應用程序中來檢測剛才創(chuàng)建的DLL. 參見圖10.
圖 10.
2、添加命名空間的引用
下一步是向庫中添加引用.你可以使用添加引用菜單來添加一個引用。選擇 項目->添加引用. 如圖11.
圖 11.
在這一頁中,點擊【瀏覽】按鈕來瀏覽庫。參加圖 12.
圖 12.
找到你剛才創(chuàng)建的DLL,并單擊【確定】.如圖 13.
圖 13.
添加引用向?qū)涯愕膸斓囊锰砑拥疆斍绊椖恐衼恚鐖D 14.
圖 14.
添加完mcMath庫的引用后, 你會在解決方案中的樹形節(jié)點中看到這個引用.如圖 15.
圖15.
3、調(diào)用 mcMath 命名空間, 創(chuàng)建 mcMathComp對象并調(diào)用它的方法和屬性.
距離你調(diào)用自己的方法和屬性僅有一步之遙了,請按下面的步驟進行:
(1). 使用命名空間
在項目的開頭添加using mcMath代碼.
(2).創(chuàng)建 mcMathComp的對象
mcMathComp cls = new mcMathComp();
(3).調(diào)用方法和屬性
現(xiàn)在你可以調(diào)用 mcMathComp 類的方法和屬性了。下面使用實例IRes調(diào)用方法并返回值,同時在控制臺中輸出結果。
完整的項目代碼列于下邊:
現(xiàn)在編譯并運行項目,輸出結果如圖16所示。
圖 16.
新聞熱點
疑難解答