الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف نتعامل مع الملفات DLL

مغلق
بدأه arafa في 4 مايو 2005 · 12 رد · 2,281 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سؤالى كالتالى:

كيف نتعامل مع ملفات DLL من خلال برامجنا؟؟

السؤال بطريقة اخرى:

لو اردنا مثلا ان نجعل برامجنا متعددة اللغة

كيف نتعامل مع هذة الملفات وما هى طريقة كتابة الكود ؟

وكيف نستدعى ما بداخل الملف DLL لبرنامجنا؟؟

ياريت لو يتم شرح ذلك مع مثال توضيحى

شكرا لكم ,,,

وَقُل رَّبِّ زِدْنِي عِلْماً

#2

السلام عليكم ورحمة الله وبركاتة

إن شاء الله أخى سأعد مثال على هذا الأمر على أنة سوف يكون أخر مشاركة لى هذا الشهر بسبب سفرى لظروف الختبارات الدراسية فى مدينة أخرى لن أتأخر إن شاء الله

{يَا أَيُّهَا النَّاسُ اتَّقُوا رَبَّكُمْ إِنَّ زَلْزَلَةَ السَّاعَةِ شَيْءٌ عَظِيمٌ }الحج1

#3

موضوع جيد و نحن بالانتظار

المهندس

#4

up

وَقُل رَّبِّ زِدْنِي عِلْماً

#5

سؤال ممتاز يا أخي العزيز ونحن بانتظار الأجابة عليه :rolleyes:

#6
اقتباس
بسم الله الرحمن الرحيم

نحن نسمع كثيرا عن ملفات ال DLL وهى إختصار ل ( Dinamc Link library) وانها تستخدم فى البرامج وذلك لتسهل على المبرمجين عملهم وليحافظو على برامجهم محميه من معرفت سرها أو حتى ليبيعها ويسترزق منها..

نحن فى هذا الدرس سوف نتعلم كيفيه إنشاء مكتبة الربط الديناميكى

DLL وذلك من خلا مجموعه Class فهذا يعنى تعلم كيفيه عمل Class و كيفيه تعليبه على شكل ملف DLL ..

والان نبدء بسم الله ..

الخطوة الأولى .. فتح مشروع لإنتاج ملفات ال DLL ..

1 - نشغل مترجم ال Microsoft Visual Basic 6.0 أو إذا كان المترجم محمل فى الذاكره نقوم بفتح مشروع جديد ..

2- فعندها تظهر لنا نافذت New Project نختار منها ActiveX DLL

كما فى الشكل التالى ..

3- ثم نضغط على open ..

وبذلك نكون قد فتحنا مشروع ينتج ملفات DLL ..

وهو يكون من جراء ذاته قد أضاف Class إلى المشروع وسماه Class1

نحن فى مثالنا هذا نقوم بغير إسم لمشروع من Project1 إلى MyDLL .

الخطوة الثانيه ... إضافت عدد من ال Classes إلى المشروع ...

مكتبت الربط بإمكانها ان تحوى أشياء كثيره غير ال Classes لكن للتبسيط نحن نقوم بإضافة classes ..

1- قم تغير الخاصيه name لل Class1 لتكون CEmployee أى class للموظفين ..

2- قم بإضافت متغيرات داخل ال CEmployee ..

وذلك كما فى الكود التالى..

' إسم الموظف
public Name As String
'  عمر الموظف
public age As Integer
'الراتب
public salary As Double
' الراتب الإضافى
public ovarTime As Double

وبذلك نكون قد عرفنا خصائص property للموظف ..

3- وإذا أردنا إضافت إجراء أو Methud إلى ال Class

نضع الإجراء التالى أسفل المتغيرات التى عرفناها ..

Public Function GetFullSalary() As Double
  GetFullSalary = salary + ovarTime
End Function

وهو يقوم بحساب الراتب الكامل ..

و الآن يكون ال class جاهز ومكتمل ( فى مثلانا فقط ) .

ولكن إذا أردنا إضافت Class أخر نضع فيه إجرآئات اخرى.. نقوم بعمل الأتى ..

1- لإضافت Class جديد على المشروع نقوم بإختيار Add Class module

من قائمت Project كما فى الشكل التالى..

فتظهر لنا شاشت Add Class module نختار منها new ومن new

نختالر Class module كما فى الشكل التالى ..

أو Exiesting إذا كان هنالك class منشء جاهز لديك فى مشاريع سابقه.

2- نقوم بتغير إسمه إلى CLocation أى class لموقع يحتوى على x,y

ونقوم بإضافت المغيرات التاليه فى داخله..

Public x As Integer
Public y As Integer

وبذك نكون قد أنشئنا class آخر داخل المشروع..

ويمكننا بعد ذلك إضافت مانريد من ال Class أو حتى ال Forms

أو ال mudule الإعتياديه لكن لا يمكن التعرف عليها مخارج ال DLL

إلى إذا إستدعيتها من داخل إجراء فى إحدى ال Class ..

وهذا يجعلنا نعلم أنه يجب أن يكون فى مشروع ال DLL على الأقل Class واحده ...

الخطوة الثالثه ... تحويل المشروع وترجمته إلى ملف DLL ...

هذه الخطوه بسيطه لكنها مهمه .. لان نوع المشروع DLL

من قايمه File نختار Make MyDLL.dll ونقوم بتحديد المكان له والإسم الذى نريد ليكون إستخدامه به.. فى المستقبل.. إن شاء الله ..

وبهذا نكون قد أنشئنا ملف DLL يحتوى على بعض الحلول البرمجه الخاصه بنا والتى طورناها نحن ..

ويمكن بعد ذلك إعطائه إلى صديق أو بيعه إلى شركه أو مبرمج ..

ولكن يجب أن يعلم كيف يستخدمه فى الأغلب يتم إرفاق ملف Txetيشرح الأدوات والوظائف التى يقوم بها..

ولكن السؤال كيف يمكن أن أستدعيه وأستفيد منه ..

إن شاء الله سوف أضع درس فى كيفيه الإستفاده من DLL جاهز ..

أو مصمم فى السابق من نفس المبرمج او من مبرمج آخر..

وبالله الوفيق..

منقول من موضوع للأخر رجب النتشة ..

ملحوظة: الصور لا تظهر ..

تم تعديل هذه المشاركة بواسطة عبد الله فتحي في 7 مايو 2005 في 14:02

ani.gif
#7
اقتباس
بسم الله الرحمن الرحيم

كيفيه الإستفاده من ملف DLL ... أى كيف أستخادم مجموعه Classes موجوده داخل مكتبت الربط الديناميكى .

من أفضل تقيات العمل فى البرامج التى تعمل تحت نظام Windows هو مكتبه الربط الدينامكى .

وهى عباره عن مكتبه برمجيه يقوم بعملها مبرمجين أو شركات برمجيه أو حتى أنت بإمكانك عملها

أما نحن فى هذا الدرس فسوف نتعلم كيفيه الإستفاده من ملف DLL ...

والأن نبدء بسم الله ...

يوجد هنالك مجموعت خطوات ليتم ذلك ..

الخطوة الأولى : وهى الحصول على ملف ال DLL .

يتم الحصو على ملف DLL بالعاده من الإنتر نت إما بامجان أو بالشراء .

او من خلال شرائه من مبرمج أو من جراء طلب من شركه ..

ويمكن أن يكون ال DLL من صنع المبرمج نفسه ..

وفى العاده يتم إرفاق ملف مساعد إما ملف DOC أو TXT ولكن فى الأغلب يكون معه ملف ذو الإمتدا TLP وهو يحوى اسماء الClasses الوجوده ومجموعه ال methods الموجوده داخله ..

وهذا يعطى مرونه فى التعامل مع ال DLL .

ونحن فى درسنا هذا التابع للدرس السابق سوف نستخدم المكتبه MyDLL.dll التى صممناها وذلك يكون

عندما عملنا make MyDLL.dll فإنه نتج عندى الملف MyDLL.dll وعمل له registration من نفس المترجم ..فى قاعدت بيانات ال registry

فيكون فى دليل المشروع كما فى الشكل التالى ..

الخطوة الثانيه : وهى عمل registration تسجيل للملف فى قاعده الرجسترى registry فى النظام .

ويمكن ذلك من خلا عدت طرق ... أذكرطريقه منها ..

وهى الطريقه البسيطه ..

وهى تتم خلال نسخ الملف إلى دليل النظام إى عمل copy له إلى الدليل ..

C:\Windows\system\ وهذا ليكون الملف shear أى يمكن إستخدامه من أكثر من برنامج ..فى نفس الوقت .

ونأتى الأن إلى عملية تسجليل المكتبه بستخدام ال RegEdit ..

نشغل أمر التشغيل Run من قايمت start ثم نكتب فيه الامر التالى

regsvr32   C:\windows\system\MyDLL.dll

ويعطى الموقع للملف كامل ..

وعندما تظهر لك هذه الرساله تكون قد تأكدت من ان عمليت التسجيل نجحت ..

وبهذا نكون قد عملنا تسجيل للمكتبه....

الخطوت الثالثه : وهى إعلام المشروع وإضافت المكتبه إليه .. وهذا يتم بالخطوات التاليه ..

1- نفتح مشروع من نوع standard exe ثم نعطيه أى إسم نريد ..

2- ثم نختار من القائمه Project الأمر References كما فى الشكل التالى ..

فتظهر لنا نافذة References ونبحث عن المكتبه MyDLL من بين المعطيات ثم نختاره ونضغط OK وهذا الشكل يوضح العلميه ..

وبهذا نكون قد جهزنا المشروع للعمل والإستفاده من المكتبه ..

ولكن يلزما فى بعض الأحيان النظر إلى محتويات المكتبه ولذلك يوجد برنامج مساعد فى هذه العمليه

وهو Objects Browser ولتشغيله يمكن ذلك من القائمه View أن نختار Objects Browser

كما فى الشكل التالى .

فتظهر لنا شاشت Objects Browser ونختار منها من القائمه المنسدله MyDLL وبهذا نقوم بعرض كل محتوياته من Classes ولكل Class يعرض مجموعه المتغيرات الموجوده داخله و الإجرأت أيضاً .. والشكل التالى يوضح ..

وبهذا يمكن ان نتعرف على محتويات أى ملف DLL ولنستفيد من إمكانياته ...

ولكننا عند الإستخدام يجب أن نراعى تراخيص العمل عليه ..

الخطوت الرابعه : تعريف Objects من Classes موجوده داخل المكتبه ...

الان يمكننا أن نستخدم المكتبه بتعريف object من من أي Class ومن ثم إستخدام الخصائص والإجرآت التى يقوم بها ..

وذلك مثلاً فى مثالنا نقوم فى المنطقه العامه لل Form1 بتعريف أربعت متغيرات...

كما فى الكود التالى .. الموجود فى الشكل

ودائما الكلمه المحجوزة New نستخدمها فى حال تعريفنا ل Object من Class حتى لو كان ال Class منشئ فى نفس المشروع .

الخطوت الخامسه : وهى وضع قيم وأخذها من ال Objects المنشئة ... وهنا يكاد أننا لا نتعامل مع ال DLL بل كأننا نتعمل مع أي متغير أو كنترول فى ال vb ...

ويكون ذلك مثلا من خلا إدخال معلومات إلى Text وبستخدام مجموعه من الكبسات لإتمام العمل ..

ويمكن ان يكون شكل البرنامج المستخدم كما فى الشكل التالى ..

وبالله الوفيق

منقول من موضوع آخر للأخر جب النتشة ..

ani.gif
#8

مشكور اخ عبدالله فتحي ، ولكن ياليت لو تضع وصلة الموضوع الاصلي حفاظا على الحقوق

#9

لك الشكر يا أخ عبد الله فتحى ....... :rolleyes:

#10

السلام عليكم و رحمة الله و بركاته

شكر الله لك اخونا الكريم عبد الله فتحي

اقتباس
لو اردنا مثلا ان نجعل برامجنا متعددة اللغة

كيف نتعامل مع هذة الملفات وما هى طريقة كتابة الكود ؟

وكيف نستدعى ما بداخل الملف DLL لبرنامجنا؟؟

ياريت لو يتم شرح ذلك مع مثال توضيحى

اضيف الي سؤال الاخ arafa

ماهي الملفات المختصة باللغة العربية وخاصية ال right to left الواجب توافرها مع برامجنا

ارفق ملف VBAME.DLL

قيل لي انه المسئول عن خاصية ال right to left بالطبع اتبعت كل الارشادات من ريجستريشن او نسخ في مجلد السيستم بالطبع علي ويندو غير عربي وحصلت الا علي الفشل الذريع !!!!!!!!!!!!!!

VBAME.zip

29_09_05_02_32_59_1128029579_4_13_3[_].gif

صور gif شفافة لتجميل واجة البرنامج

الخط العثماني للمهتمين ببرمجة برامج تلاوة القرآن

كيف يمكن عمل سكرول بالماوس, scroling by mouse wheel

كبفية استعراض ملف PDF في تكست

06_02_06_08_01_06_1139241666down-logo_1.gif

هل نكذب علي الله ام نكذب علي انفسنا

البـر لا يبلي ، و الذنب لا ينسـي ، و الديـان لا يمـوت ، افعـل مـا شئت كما تـديـن تـدان

ليس كل من تعمم مفتيا ، بل ان الدين الاسلامي ليس قيه كهانه و بالتالي ليس فيه ما يعرف ب رجال الدين – احمد رجب

                                  مع خالص تحيـــــــــــــــــــــــــــــــــاتي

                                                   GAF58 

#11

شكرا استاذ عبدالله :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#12

up

حتي لا يموت الموضوع

الموضوع اكثر من مهم

للا سف ده اللي اقدر عليه موش اكتر من محاولة الانعاش

29_09_05_02_32_59_1128029579_4_13_3[_].gif

صور gif شفافة لتجميل واجة البرنامج

الخط العثماني للمهتمين ببرمجة برامج تلاوة القرآن

كيف يمكن عمل سكرول بالماوس, scroling by mouse wheel

كبفية استعراض ملف PDF في تكست

06_02_06_08_01_06_1139241666down-logo_1.gif

هل نكذب علي الله ام نكذب علي انفسنا

البـر لا يبلي ، و الذنب لا ينسـي ، و الديـان لا يمـوت ، افعـل مـا شئت كما تـديـن تـدان

ليس كل من تعمم مفتيا ، بل ان الدين الاسلامي ليس قيه كهانه و بالتالي ليس فيه ما يعرف ب رجال الدين – احمد رجب

                                  مع خالص تحيـــــــــــــــــــــــــــــــــاتي

                                                   GAF58 

#13

اخى عبد الله فتحي جزاك الله خيرا شكرا لك وشكرا لكل من ساهم فى هذا الموضوع الذى افادنى

-waf

هذا الموضوع مغلق.

مواضيع مشابهة