مشاركة عبر


كيفية القيام بما يلي: إنشاء و استخدام التجميعات باستخدام خط الأوامر (C# و Visual Basic)

التجميع أو إضافة الإرتباطات مكتبة (DLL) مرتبطة بالبرنامج في وقت التشغيل. لشرح بناء و إستخدام DLL ، اطلع على السيناريو التالي:

  • MathLibrary.DLL: ملف المكتبة الذي يحتوي على الأساليب لتُسمى في وقت التشغيل. في هذا المثال، DLL يحتوي على طريقتين Add و Multiply.

  • Add: الملف المصدر يحتوي على الأسلوبAdd. تقوم بإرجاع المجموع معلمات الخاصة بها. الفئة AddClass التي تحتوي على الأسلوب Add هو عضو في مساحة الاسم UtilityMethods.

  • Mult: عنصر التحكم المصدري يحتوي على الأسلوبMultiply. تقوم بإرجاع المنتج معلمات الخاصة بها. الفئة MultiplyClass التي تحتوي على الأسلوب Multiply هو عضو في مساحة الاسم UtilityMethods.

  • TestCode: الملف المصدر يحتوي على الأسلوبMain. يستخدم الأساليب الموجودة في ملف DLL إلى حساب المجموع حاصل ضرب الوسيطات وقت التشغيل.

مثال

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

هذا الملف يحتوي على خوارزمية تستعمل أساليب DLL أو Add و Multiply. يبدأ صواب تحليل وسيطات إدخال من سطر الأوامر num1 و num2. ثم عليه حساب المجموع بإستخدام Add الأسلوب على فئة AddClass، و المنتج بإستخدام الأسلوب Multiply على فئة MultiplyClass .

ولاحظ أن using موجه ( Imports في Visual Basic) في بداية الملف يتيح لك إستخدام أسماء فئة غير المؤهلة للرجوع إلى أساليب DLL في وقت التحويل البرمجي كما يلي:

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

وإلا، ليجب عليك إستخدام الأسماء المؤهلة بالكامل كما يلي:

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

التنفيذ

لتشغيل البرنامج ، أدخل اسم ملف EXE متبوعاً رقمين, كما يلي:

TestCode 1234 5678

التحويل البرمجي للتعليمات البرمجية

لبناء الملف MathLibrary.DLL وتجميع الملفين Add و Mult بإستخدام سطر الأوامر التالية.

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

/ الهدف: مكتبة صواب بإعلام برنامج التحويل البرمجي لإخراج DLL بدلاً من ملف EXE. خيار التحويل البرمجي / الخروج متبوعاً باسم ملف يُستخدم لتحديد اسم ملف مكتبة الإرتباط الحيوي (DLL). وبخلاف ذلك، يقوم المحول البرمجي بإستخدام أول ملف ( Add.cs) كإسم لـ DLL.

لإنشاء الملف القابل للتنفيذ TestCode.exe ، إستخدم سطر الأوامر التالي:

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

خيار برنامج التحويل البرمجي /out يقوم بإخبار لإخراج EXE و تحديد اسم ملف الإخراج (TestCode.exe) . خيار المحول البرمجي يعد اختياري. برنامج التحويل البرمجي للخيار مرجع/ يقوم بتحديد ملف DLL أو الملفات التي يستخدمها هذا البرنامج. لمزيد من المعلومات، راجع / مرجع C# و /reference (Visual Basic) لـ صواب.

للحصول على مزيد من المعلومات حول بناء من سطر الأوامر، راجع إنشاء سطر الأوامر باستخدام csc.exe و الإنشاء من سطر الأوامر (Visual Basic).

راجع أيضًا:

المهام

كيفية القيام بما يلي: تحديد العنوان الأساسي لـ DLL

المرجع

التجميعات ومخزن التجميع العمومي المؤقت (C# و Visual Basic)

المبادئ

دليل البرمجة لـ #C

إنشاء فئة احتجاز دالات DLL

تصحيح مشاريع DLL

موارد أخرى

دليل البرمجة Visual Basic