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
Sestavení a globální mezipaměť sestavení GAC (C# and Visual Basic)
Vytvoření třídy k umístění funkcí DLL