動態連結庫(DLL)在執行時連結到程式。為說明如何生成和使用DLL,請看以下方案:
MathLibrary.DLL:為庫檔案,其中包含執行時要呼叫的方法。此例中,DLL包含兩個方法:Add和Multiply。
Add.cs:為原始檔,其中包含Add(longi,longj)方法。該方法返回引數之和。包含Add方法的AddClass類是名稱空間UtilityMethods的成員。
Mult.cs:為原始檔,其中包含Multiply(longx,longy)方法。該方法返回引數之積。包含Multiply方法的MultiplyClass類也是名稱空間UtilityMethods的成員。
TestCode.cs:包含Main方法的檔案。它使用DLL檔案中的方法來計算執行時引數的和與積。
示例
//File:Add.cs
namespaceUtilityMethods
{
publicclassAddClass
publicstaticlongAdd(longi,longj)
return(i+j);
}
//File:Mult.cs
publicclassMultiplyClass
publicstaticlongMultiply(longx,longy)
return(x*y);
//File:TestCode.cs
usingUtilityMethods;
classTestCode
staticvoidMain(string[]args)
System.Console.WriteLine("CallingmethodsfromMathLibrary.DLL:");
if(args.Length!=2)
System.Console.WriteLine("Usage:TestCode<num1><num2>");
return;
longnum1=long.Parse(args[0]);
longnum2=long.Parse(args[1]);
longsum=AddClass.Add(num1,num2);
longproduct=MultiplyClass.Multiply(num1,num2);
System.Console.WriteLine("{0}+{1}={2}",num1,num2,sum);
System.Console.WriteLine("{0}*{1}={2}",num1,num2,product);
/*Output(assuming1234and5678areenteredascommandlineargs):
CallingmethodsfromMathLibrary.DLL:
1234+5678=6912
1234*5678=7006652
*/
此檔案包含使用DLL方法Add和Multiply的演算法。它首先分析從命令列輸入的引數num1和num2。然後使用AddClass類中的Add方法計算和,使用MultiplyClass類中的Multiply方法計算積。
請注意,檔案開頭的using指令使您得以在編譯時使用未限定的類名來引用DLL方法,如下所示:
MultiplyClass.Multiply(num1,num2);
否則,必須使用完全限定名,如下所示:
UtilityMethods.MultiplyClass.Multiply(num1,num2);
執行
若要執行程式,請輸入EXE檔案的名稱,檔名的後面跟兩個數字,如下所示:
TestCode12345678
編譯程式碼
若要生成檔案MathLibrary.DLL,請使用以下命令列編譯檔案Add.cs和檔案Mult.cs:
csc/target:library/out:MathLibrary.DLLAdd.csMult.cs
/target:library編譯器選項通知編譯器輸出DLL檔案而不是EXE檔案。後跟檔名的/out編譯器選項用於指定DLL檔名。否則,編譯器使用第一個檔案(Add.cs)作為DLL檔名。
若要生成可執行檔案TestCode.exe,請使用以下命令列:
csc/out:TestCode.exe/reference:MathLibrary.DLLTestCode.cs
/out編譯器選項通知編譯器輸出EXE檔案並且指定輸出檔名(TestCode.exe)。此編譯器選項是可選的。/引用編譯器選項指定該程式使用的DLL檔案。
動態連結庫(DLL)在執行時連結到程式。為說明如何生成和使用DLL,請看以下方案:
MathLibrary.DLL:為庫檔案,其中包含執行時要呼叫的方法。此例中,DLL包含兩個方法:Add和Multiply。
Add.cs:為原始檔,其中包含Add(longi,longj)方法。該方法返回引數之和。包含Add方法的AddClass類是名稱空間UtilityMethods的成員。
Mult.cs:為原始檔,其中包含Multiply(longx,longy)方法。該方法返回引數之積。包含Multiply方法的MultiplyClass類也是名稱空間UtilityMethods的成員。
TestCode.cs:包含Main方法的檔案。它使用DLL檔案中的方法來計算執行時引數的和與積。
示例
//File:Add.cs
namespaceUtilityMethods
{
publicclassAddClass
{
publicstaticlongAdd(longi,longj)
{
return(i+j);
}
}
}
//File:Mult.cs
namespaceUtilityMethods
{
publicclassMultiplyClass
{
publicstaticlongMultiply(longx,longy)
{
return(x*y);
}
}
}
//File:TestCode.cs
usingUtilityMethods;
classTestCode
{
staticvoidMain(string[]args)
{
System.Console.WriteLine("CallingmethodsfromMathLibrary.DLL:");
if(args.Length!=2)
{
System.Console.WriteLine("Usage:TestCode<num1><num2>");
return;
}
longnum1=long.Parse(args[0]);
longnum2=long.Parse(args[1]);
longsum=AddClass.Add(num1,num2);
longproduct=MultiplyClass.Multiply(num1,num2);
System.Console.WriteLine("{0}+{1}={2}",num1,num2,sum);
System.Console.WriteLine("{0}*{1}={2}",num1,num2,product);
}
}
/*Output(assuming1234and5678areenteredascommandlineargs):
CallingmethodsfromMathLibrary.DLL:
1234+5678=6912
1234*5678=7006652
*/
此檔案包含使用DLL方法Add和Multiply的演算法。它首先分析從命令列輸入的引數num1和num2。然後使用AddClass類中的Add方法計算和,使用MultiplyClass類中的Multiply方法計算積。
請注意,檔案開頭的using指令使您得以在編譯時使用未限定的類名來引用DLL方法,如下所示:
MultiplyClass.Multiply(num1,num2);
否則,必須使用完全限定名,如下所示:
UtilityMethods.MultiplyClass.Multiply(num1,num2);
執行
若要執行程式,請輸入EXE檔案的名稱,檔名的後面跟兩個數字,如下所示:
TestCode12345678
編譯程式碼
若要生成檔案MathLibrary.DLL,請使用以下命令列編譯檔案Add.cs和檔案Mult.cs:
csc/target:library/out:MathLibrary.DLLAdd.csMult.cs
/target:library編譯器選項通知編譯器輸出DLL檔案而不是EXE檔案。後跟檔名的/out編譯器選項用於指定DLL檔名。否則,編譯器使用第一個檔案(Add.cs)作為DLL檔名。
若要生成可執行檔案TestCode.exe,請使用以下命令列:
csc/out:TestCode.exe/reference:MathLibrary.DLLTestCode.cs
/out編譯器選項通知編譯器輸出EXE檔案並且指定輸出檔名(TestCode.exe)。此編譯器選項是可選的。/引用編譯器選項指定該程式使用的DLL檔案。