動態鏈接庫 (DLL) 在運行時鏈接到程序。為說明如何生成和使用 DLL,請看以下方案:
- MyLibrary.DLL:為庫文件,其中包含運行時要調用的方法。此例中,DLL 包含兩個方法:Add 和 Multiply。
- Add.cs:為源文件,其中包含 Add(long i, long j) 方法。該方法返回參數之和。包含 Add 方法的 AddClass 類是命名空間 MyMethods 的成員。
- Mult.cs:為源文件,其中包含 Multiply(long x, long y) 方法。該方法返回參數之積。包含 Multiply 方法的 MultiplyClass 類也是命名空間 MyMethods 的成員。
- MyClient.cs:包含 Main 方法的文件。它使用 DLL 文件中的方法來計算運行時參數的和與積。
源文件
文件:Add.cs
// Add two numbers using System; namespace MyMethods { public class AddClass { public static long Add(long i, long j) { return(i+j); } } }文件:Mult.cs
// Multiply two numbers using System; namespace MyMethods { public class MultiplyClass { public static long Multiply(long x, long y) { return (x*y); } } }文件:MyClient.cs
// Calling methods from a DLL file using System; using MyMethods; class MyClient { public static void Main(string[] args) { Console.WriteLine("Calling methods from MyLibrary.DLL:"); if (args.Length != 2) { Console.WriteLine("Usage: MyClient <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); Console.WriteLine("The sum of {0} and {1} is {2}", num1, num2, sum); Console.WriteLine("The product of {0} and {1} is {2}", num1, num2, product); } }此文件包含使用 DLL 方法
Add和Multiply的算法。它首先分析從命令行輸入的參數num1和num2。然后使用AddClass類中的Add方法計算和,使用MultiplyClass類中的Multiply方法計算積。請注意,文件開頭的 using 指令使您得以在編譯時使用未限定的類名來引用 DLL 方法,例如:
MultiplyClass.Multiply(num1, num2);否則,必須使用完全限定名,例如:
MyMethods.MultiplyClass.Multiply(num1, num2);編譯
若要生成文件
MyLibrary.DLL,請使用以下命令行編譯文件Add.cs和文件Mult.cs:
csc /target:library /out:MyLibrary.DLL Add.cs Mult.cs/target:library 編譯器選項通知編譯器輸出 DLL 文件而不是 EXE 文件。后跟文件名的 /out 編譯器選項用于指定 DLL 文件名。否則,編譯器使用第一個文件 (
Add.cs) 作為 DLL 文件名。若要生成可執行文件
MyClient.exe,請使用以下命令行:
csc /out:MyClient.exe /reference:MyLibrary.DLL MyClient.cs/out編譯器選項通知編譯器輸出 EXE 文件并且指定輸出文件名 (MyClient.exe)。此編譯器選項是可選的。/reference 編譯器選項指定該程序使用的 DLL 文件。執行
若要運行程序,請輸入 EXE 文件的名稱,文件名的后面跟兩個數字,例如:
MyClient 1234 5678輸出
Calling methods from MyLibrary.DLL: The sum of 1234 and 5678 is 6912 The product of 1234 and 5678 is 7006652
浙公網安備 33010602011771號