回覆列表
  • 1 # 待花開一夢素兮

    動態連結庫(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檔案。

  • 中秋節和大豐收的關聯?
  • 擁抱對身體有什麼影響?