تعلم صنع مكتبات dll (الشرح بالصور !!! )


الكاتب الأخ : SAFMEHDI

السلام عليكم و رحمة الله و بركاته
لقد قررت اليوم أن أضع موضوعا جد مهما في حياة المبرمج ( صنع مكتبات dll و ربطها مع برنامجك )

مقدمة :
تعتبر مكتبات dll من أهم الأمور في عالم البرمجة فلن تجد برنامج ممتاز خال من هذه المكتبات
في بداية عصر لغة الفيجوال 6 كان دعم هذه التقنية ضعيف من قبل ميكروسوفت وصعبة التطبيق,الى أن الدوت نت سهلت الأمر كثيرا .

مميزات استخدام مكتبات dll
-مشاركة الآخرين به
-تجميع جميع اكوادك في مكتبة واحدة
-تسهيل العمل
-…
-…

سوف نتعلم في هذا الدرس :

-طريقة التعامل مع الدوال (هام جدا )
-طريقة تصميم مكتبات dll
-ربط برنامجك مع مكتبات dll

لنبدأ على بركة الله
افتح الفيجوال دوت نت

اختر انشاء مشروع جديد

اختر ClassLibrary كما في الصورة التالية

هذا هو الكلاس

Public Class Class1

هنا نكتب الكود

End Function

غير اسم الكلاس من Class1 الى vb4arab

و الآن سوف نحاول أن نقوم بفهم الدوال

ال Function هي الدوال
تستخدم في عدة مجالات مثل العمليات الحسابية
تستخدم الدوال لمنع تكرار الكود
لاحظ كيف سوف نقوم بتعريف دالة تقوم بعملية جمع رقمين

  Public Function Plus(ByVal val1 As Double, ByVal val2 As Double) As Double
Dim totale As Double = val1 + val2
Return totale.ToString
End Function

نبدأ بشرح الكود

Public Function ==>هذه هي الطريقة لتعريف دالة
plus هو اسم الدالة
val1 القيمة الأولى
val2 القيمة الثانية
لقد قمنا بتعريف val1 , val2 على أنهما متغيران Double (عدد كبير)
totale هي القيمة التي نخزن فيها النتيجة ,وهي متغير عددي تقوم بجمع val1 مع val2
Return totale.ToString ==>يقوم بارجاع النتيجة الى string
و الآن لقد انتهينا من كتابة الدالة

هذه هي الدالة الأولى الموجودة في المكتبة
ماذا اذا أردنا أن نقوم باضافة دالة أخرى
نتبع الخطوات الأولى
وهذه دالة تقوم بتحويل الهكس (Hexadecimal ) الى Decimal

 Public Function Hex2Dec(ByVal Hex As String) As String
Dim Dec As Integer = Convert.ToInt64(Hex, 16)
Return Dec
End Function

نفس الشرح السابق اسم الدالة هو Hex2Dec و…
هل فهمت هذا المثال جيدا ؟
و الآن للمثال التالي
هذه دالة تقوم بجلب اسم مستخدم الحاسوب

 Public Function GetUserNam() As String
Dim user As String = Environment.UserName
Return user.ToString
End Function

ألا تلاحظ شيئا ؟
لا يوجد تلك المتغيرات الموجود في المثال الأول(val1 ,val2) و المثال الثاني (Hex)
السبب هو أن المثال الأول قيمة val1 و val2 متغيرة يحددها المستخدم
فمثلا يمكن أن تكون val1 =5 و val2 =3 و totale =8
أو يمكن أن تكون val1 =10 و val2 =12 و totale =22
أو val1 =… و val2=… و totale =…
أو ….
كذلك بالنسبة للمثال الثاني
فقيمة Hex يحددها المستتخدم
يمكن أن تكون Hex=5 or Hex =10 or Hex =… Hex
أما في المثال الثالث فاسم المستخدم لا يحدده المستخدم لأنه ثابت
وهذا مثال آخر
دالة لمعرفة الأيبي الخاص بالجهاز

  Public Function GetMyIP() As String
On Error Resume Next
Dim Host As IPHostEntry = Dns.GetHostByName(Dns.GetHostName)
Return Host.AddressList.GetValue(1).ToString
End Function

أعتقد أنها لا تحتاج الى شرح
لكن لا تنس أن تقوم باستراد المجال
Imports System .Net
لاننا دالة الأيبي مرتبطة مع الفضاء Net

الكود النهائي

والان انتهينا من الدوال ومن تصميم المكتبة

و لان قم ببناء المكتبة (تستطيع أن تظيف أكواد و دوال أخرى )
ختر Build ==> Rebuild

و لأن سوف نقوم بربط المكتبة مع برنامجنا
افتح الفيجوال واختر مشروع جديد

ثم من قائمة Project اختر Add Reference

اختر Browse ثم اختر مكان المكتبة
ثم Ok

انتقل الى الفور
أنقر نقرتين ثم توجه الى أعلى الفورم و قم باستراد المجالات التالية

رموز PHP:
 Imports First_Project
Imports First_Project.vb4arab

First_Project اسم المشروع
vb4arab هو اسم الكلاس و يمكننا أن نظيف كلاس آخر
الأن في حدث الفورم لواد أو الزر
أكتب الكود التالي

 Dim smp As New vb4arab

ومعناه أننا سوف نتعامل مع الدوال الموجودة في الكلاس vb4arab
بعد هذا الكود
اضف هذه الأكواد

  MsgBox(smp.Plus(40, 20))
MsgBox(smp.Hex2Dec(10))
MsgBox(smp.GetUserName)
MsgBox(smp.GetMyIP)

ال MsgBox(smp.Plus(40, 20)) لجمع 20 +40
ال MsgBox(smp.Hex2Dec(10)) لتحويل 10 الى Decimal
ال MsgBox(smp.GetUserName) لاظهار اسم المستخدم
ال MsgBox(smp.GetMyIP) لاظهار الأيبي

الكود النهائي

Advertisements
  1. لا توجد تعليقات حتى الأن.
  1. No trackbacks yet.

شاركنا برأيك ,لكي نرقى بالمدونة,يمكنك أضافة تعليق عن طريق حسابك في Facebook

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: