動態連結程式庫 (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 檔案中的方法來計算運行時參數的和與積。
Add.cs
1 // File: Add.cs
2 namespace UtilityMethods
3 {
4 public class AddClass
5 {
6 public static long Add(long i, long j)
7 {
8 return (i + j);
9 }
10 }
11 }
Mult.cs
1 // File: Mult.cs
2 namespace UtilityMethods
3 {
4 public class MultiplyClass
5 {
6 public static long Multiply(long x, long y)
7 {
8 return (x * y);
9 }
10 }
11 }
TestCode.cs
1 // File: TestCode.cs
2
3 using UtilityMethods;
4
5 class TestCode
6 {
7 static void Main(string[] args)
8 {
9 System.Console.WriteLine("Calling methods from MathLibrary.DLL:");
10
11 if (args.Length != 2)
12 {
13 System.Console.WriteLine("Usage: TestCode <num1> <num2>");
14 return;
15 }
16
17 long num1 = long.Parse(args[0]);
18 long num2 = long.Parse(args[1]);
19
20 long sum = AddClass.Add(num1, num2);
21 long product = MultiplyClass.Multiply(num1, num2);
22
23 System.Console.WriteLine("{0} + {1} = {2}", num1, num2, sum);
24 System.Console.WriteLine("{0} * {1} = {2}", num1, num2, product);
25 }
26 }
執行 運行CMD
若要運行程式,請輸入 EXE 檔案的名稱,檔案名稱的後面跟兩個數字,如下所示:
TestCode 1234 5678
輸出
Calling methods from MathLibrary.DLL:1234 + 5678 = 69121234 * 5678 = 7006652
編譯代碼
若要組建檔案 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 檔案。
原文地址:http://msdn.microsoft.com/zh-cn/library/3707x96z(VS.80).aspx