Udostępnij za pośrednictwem


Porady: tworzenie i korzystanie z zestawów przy użyciu wiersza polecenia (C# i Visual Basic)

Zespół lub dynamicznego łączenia biblioteki (DLL), jest połączony przez program w czasie wykonywania.Do wykazania, tworzenie i używanie biblioteki DLL, należy rozważyć następujący scenariusz:

  • MathLibrary.DLL: Plik biblioteka zawiera metody, które ma być wywoływana w czasie wykonywania.W tym przykładzie biblioteka DLL zawiera dwie metody, Add i Multiply.

  • Add: Plik źródłowy, który zawiera metodę Add.Zwraca sumę jego parametry.Klasa AddClass , zawiera metodę Add jest członkiem obszaru nazw UtilityMethods.

  • Mult: Kod źródłowy, który zawiera metodę Multiply.Zwraca iloczyn jego parametry.Klasa MultiplyClass , zawiera metodę Multiply jest także członkiem obszaru nazw UtilityMethods.

  • TestCode: Plik, który zawiera Main metody.Aby obliczyć sumę i produktu argumenty run-time używa metody w pliku DLL.

Przykład

' 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        
*/

Ten plik zawiera algorytm, który korzysta z metody DLL Add i Multiply.Rozpoczyna się podczas analizowania argumenty wprowadzone w wierszu polecenia, num1 i num2.A następnie oblicza sumę, używając Add metody na AddClass klasy i produktu za pomocą Multiply metody na MultiplyClass klasy.

Warto zauważyć, że using dyrektywy (Imports w języku Visual Basic) na początku pliku umożliwia używanie nazw niekwalifikowanych klasy do metody DLL referencyjne w czasie kompilacji, w następujący sposób:

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

W przeciwnym razie trzeba używać w pełni kwalifikowane nazwy w następujący sposób:

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

Wykonanie

Aby uruchomić program, wprowadź nazwę pliku EXE, następuje dwóch liczb w następujący sposób:

TestCode 1234 5678

Kompilowanie kodu

Aby utworzyć plik MathLibrary.DLL, skompiluj dwa pliki Add i Mult przy użyciu następującego wiersza polecenia.

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

/Target:library opcję kompilatora nakazuje kompilatorowi wyjściowe DLL zamiast pliku EXE./Out opcję kompilatora następuje nazwa pliku jest używany do określenia nazwy pliku DLL.W przeciwnym wypadku kompilator używa pierwszego pliku (Add.cs) jako nazwę biblioteki DLL.

Aby utworzyć plik wykonywalny TestCode.exe, użyj następującego wiersza polecenia:

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

/out Opcję kompilatora nakazuje kompilatorowi wyjściowy plik EXE i określa nazwę pliku wyjściowego (TestCode.exe).Jest to opcja kompilatora./Reference opcję kompilatora Określa plik DLL lub pliki używane przez ten program.Aby uzyskać więcej informacji, zobacz /Reference dla języka C# i /reference (Visual Basic) dla języka Visual Basic.

Aby uzyskać więcej informacji na temat budynku z wiersza polecenia, zobacz Kompilacja za pomocą wiersza polecenia przy użyciu csc.exe i Tworzenie z wiersza polecenia (Visual Basic).

Zobacz też

Koncepcje

Przewodnik programowania w języku C#

Zestawy i globalna pamięć podręczna zestawów (C# and Visual Basic)

Tworzenie klasy utrzymującej funkcje DLL

Debugowanie projektów DLL

Inne zasoby

Przewodnik programowania w Visual Basic