Sdílet prostřednictvím


Postupy: Vytváření a použití sestavení s pomocí příkazového řádku (C# a Visual Basic)

Sestavení nebo propojení dynamické knihovny (DLL) je propojen programu při spuštění.Chcete-li prokázat, vytváření a používání knihovny DLL, zvažte následující scénář:

  • MathLibrary.DLL: Soubor knihovny obsahující metody, která má být volána při běhu.V tomto příkladu knihovna DLL obsahuje dvě metody, Add a Multiply.

  • Add: Zdrojový soubor obsahující metodu Add.Vrátí součet jeho parametry.Třída AddClass , která obsahuje metodu Add je členem obor názvů UtilityMethods.

  • Mult: Zdrojový kód, který obsahuje metodu Multiply.Vrátí hodnotu produktu, jeho parametry.Třída MultiplyClass , která obsahuje metodu Multiply je také členem oboru názvů UtilityMethods.

  • TestCode: Soubor, který obsahuje Main metoda.Používá metody souboru DLL vypočítat součet a argumentů spuštění produktu.

Příklad

' File: Add.vb  
Namespace UtilityMethods
    Public Class AddClass
        Public Shared Function Add(ByVal i As Long, ByVal j As Long) As Long 
            Return i + j
        End Function 
    End Class 
End Namespace


...


' File: Mult.vb 
Namespace UtilityMethods
    Public Class MultiplyClass
        Public Shared Function Multiply(ByVal x As Long, ByVal y As Long) As Long 
            Return x * y
        End Function 
    End Class 
End Namespace


...


' File: TestCode.vb 

Imports UtilityMethods

Module Test

    Sub Main(ByVal args As String())


        System.Console.WriteLine("Calling methods from MathLibrary.DLL:")

        If args.Length <> 2 Then
            System.Console.WriteLine("Usage: TestCode <num1> <num2>")
            Return 
        End If 

        Dim num1 As Long = Long.Parse(args(0))
        Dim num2 As Long = Long.Parse(args(1))

        Dim sum As Long = AddClass.Add(num1, num2)
        Dim product As Long = MultiplyClass.Multiply(num1, num2)

        System.Console.WriteLine("{0} + {1} = {2}", num1, num2, sum)
        System.Console.WriteLine("{0} * {1} = {2}", num1, num2, product)

    End Sub 

End Module 

' Output (assuming 1234 and 5678 are entered as command-line arguments): 
' Calling methods from MathLibrary.DLL: 
' 1234 + 5678 = 6912 
' 1234 * 5678 = 7006652        
// File: Add.cs  
namespace UtilityMethods
{
    public class AddClass 
    {
        public static long Add(long i, long j) 
        { 
            return (i + j);
        }
    }
}


...


// File: Mult.cs 
namespace UtilityMethods 
{
    public class MultiplyClass
    {
        public static long Multiply(long x, long y) 
        {
            return (x * y); 
        }
    }
}


...


// 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 arguments):
    Calling methods from MathLibrary.DLL:
    1234 + 5678 = 6912
    1234 * 5678 = 7006652        
*/

Tento soubor obsahuje algoritmus, který používá metody DLL Add a Multiply.Začíná Analýza argumentů zadána z příkazového řádku num1 a num2.Pak vypočítá součet pomocí Add metodu na AddClass třídy a pomocí produktu Multiply metodu na MultiplyClass třídy.

Všimněte si, že using směrnice (Imports v jazyce Visual Basic) na začátku souboru umožňuje použití třídy neúplných názvů a referenčních metod DLL v době kompilace, takto:

MultiplyClass.Multiply(num1, num2)
MultiplyClass.Multiply(num1, num2);

Jinak je nutné použít plně kvalifikované názvy takto:

UtilityMethods.MultiplyClass.Multiply(num1, num2)
UtilityMethods.MultiplyClass.Multiply(num1, num2);

Spuštění

Chcete-li program spustit, zadejte název souboru EXE, následované dvěma čísly takto:

TestCode 1234 5678

Probíhá kompilace kódu

Vytvořit soubor MathLibrary.DLL, kompilace dva soubory Add a Mult pomocí následujícího příkazového řádku.

vbc /target:library /out:MathLibrary.DLL Add.vb Mult.vb
csc /target:library /out:MathLibrary.DLL Add.cs Mult.cs

/Target:library DLL namísto souboru EXE výstup kompilátoru sděluje, volba kompilátoru./Out volba kompilátoru, následuje název souboru se používá k určení názvu souboru DLL.Jinak, kompilátor používá první soubor (Add.cs) jako název knihovny DLL.

Vytvoření spustitelného souboru TestCode.exe, použijte následující příkaz:

vbc /out:TestCode.exe /reference:MathLibrary.DLL TestCode.vb
csc /out:TestCode.exe /reference:MathLibrary.DLL TestCode.cs

/out Volba kompilátoru souboru EXE výstup kompilátoru sděluje a určuje název výstupního souboru (TestCode.exe).Tato volba kompilátoru je volitelné./Reference volba kompilátoru Určuje soubor DLL nebo soubory, které používá program.Další informace naleznete v tématu /Reference pro C# a /reference (Visual Basic) v jazyce Visual Basic.

Další informace o vytváření z příkazového řádku naleznete v tématu Sestavování pomocí programu csc.exe v příkazovém řádku a Sestavení z příkazového řádku (Visual Basic).

Viz také

Koncepty

Průvodce programováním v C#

Sestavení a globální mezipaměť sestavení GAC (C# and Visual Basic)

Vytvoření třídy k umístění funkcí DLL

Ladění projektů knihovny DLL

Další zdroje

Příručka k programování v jazyce Visual Basic