文章目錄
動態連結程式庫 (DLL) 在運行時連結到程式。為說明如何產生和使用 DLL,請看以下方案:
MathLibrary.DLL:為庫檔案,其中包含運行時要調用的方法。此例中,DLL 包含兩個方法:Add 和 Multiply。
Add.cs:為源檔案,其中包含 Add(long i, long j) 方法。該方法返回參數之和。包含 Add 方法的 AddClass 類是命名空間 UtilityMethods 的成員。
Mult.cs:為源檔案,其中包含 Multiply(long x, long y) 方法。該方法返回參數之積。包含 Multiply 方法的 MultiplyClass 類也是命名空間 UtilityMethods 的成員。
TestCode.cs:包含 Main 方法的檔案。它使用 DLL 檔案中的方法來計算運行時參數的和與積。
Code: Add.cs
// File: Add.cs
namespace UtilityMethods
{
public class AddClass
{
public static long Add(long i, long j)
{
return (i + j);
}
}
}
Code: Mult.cs
// File: Mult.cs
namespace UtilityMethods
{
public class MultiplyClass
{
public static long Multiply(long x, long y)
{
return (x * y);
}
}
}
Code: testCode.cs
// File: TestCode.cs
using UtilityMethods;
class TestCode
{
static void Main(string[] args)
{
System.Console.WriteLine("Calling methods from MathLibrary.DLL:");
if (args.Length != 2)
{
System.Console.WriteLine("Usage: TestCode <num1> <num2>");
return;
}
long num1 = long.Parse(args[0]);
long num2 = long.Parse(args[1]);
long sum = AddClass.Add(num1, num2);
long product = MultiplyClass.Multiply(num1, num2);
System.Console.WriteLine("{0} + {1} = {2}", num1, num2, sum);
System.Console.WriteLine("{0} * {1} = {2}", num1, num2, product);
}
}
/* Output (assuming 1234 and 5678 are entered as command line args):
Calling methods from MathLibrary.DLL:
1234 + 5678 = 6912
1234 * 5678 = 7006652
*/
此檔案包含使用 DLL 方法 Add 和 Multiply 的演算法。它首先分析從命令列輸入的參數 num1 和 num2。然後使用 AddClass 類中的 Add 方法計算和,使用 MultiplyClass 類中的 Multiply 方法計算積。
請注意,檔案開頭的 using 指令使您得以在編譯時間使用未限定的類名來引用 DLL 方法
執行
若要運行程式,請輸入 EXE 檔案的名稱,檔案名稱的後面跟兩個數字,如下所示:
TestCode 1234 5678
編譯
若要組建檔案 MathLibrary.DLL,請使用以下命令列編譯檔案 Add.cs 和檔案 Mult.cs:
csc /target:library /out:MathLibrary.DLL Add.cs Mult.cs
/target:library 編譯器選項通知編譯器輸出 DLL 檔案而不是 EXE 檔案。後跟檔案名稱的 /out 編譯器選項用於指定 DLL 檔案名稱。否則,編譯器使用第一個檔案 (Add.cs) 作為 DLL 檔案名稱。
若要產生可執行檔 TestCode.exe,請使用以下命令列:
csc /out:TestCode.exe /reference:MathLibrary.DLL TestCode.cs
/out 編譯器選項通知編譯器輸出 EXE 檔案並且指定輸出檔案名 (TestCode.exe)。此編譯器選項是可選的。/引用編譯器選項指定該程式使用的 DLL 檔案。
補充 :
CSC.exe:需要在命令提示字元裡輸入,一般安裝好vs並不預設添加此路徑,可以手動添加,我的是vs2010,csc.exe的路徑為:C:\Windows\Microsoft.NET\Framework\v4.0.30319
編譯完成後的dll檔案可以直接在其他項目裡使用,將dll檔案拷入其他項目裡,在項目資源管理員裡添加引用,就可以直接使用了.
如:
using UtilityMethods;
namespace MulMethod01
{
class Program
{
static void Main(string[] args)
{
int m = 123;
int n = 456;
int sum =AddClass.Add(m,n);
int mul = MultiplyClass.Multiply(m, n);
Console.WriteLine("Sum={0},Mul={1}",sum, mul);
Console.ReadKey();
}
}
}