عدد الضغطات  : 125   عدد الضغطات  : 135
منتديات بروج سوفت  عدد الضغطات  : 106
منتديات غرور انثى  عدد الضغطات  : 86   عدد الضغطات  : 55 منتديات كعبول  عدد الضغطات  : 109   عدد الضغطات  : 59


الإهداءات
sh2005 من مصر : الحمد لله علي سلامه الوالد نتمني له دوام الصحه ** نورتي ياورده المنتي ندى نجد من سعوديه : نورتي المنتدي ياورد برجوعك وحمد لله على سلامة الوالد ومايشوف الشر ****************************************وحنا كلنا معاكي ياعمري أختك ندى نجد**** وردة البستان من اعز اعضاء : الله يسلمك يا الوداع والحمدلله والدى بقى تمام البركة فى ربنا اولا ودعواتكوا ثانياا ************ وميرسى ليكوا كلكوا بجد الوداع من خالص قلبى : حمدله على سلمتك يا وردة البستان ويا رب تكون ولدتك بالف خير يا رب تحياتى وخالص احترامى الوداع TiTo ElMaSrY من المتميزين : اداره المنتدى تشكر كل من sh2005 & qottat moura& على مجهودهم الكبير لهذا اليوم ********وتتمنى لهم كل توفيق

آخر 10 مشاركات
ღ♥ღ جــزر تـسـحـــر الأعـيـــــن ღ♥ღ (الكاتـب : - مشاركات : 0 - المشاهدات : 1 )           »          ღ♥ღ مــديــنــــة الـشــمـــــس ღ♥ღ (الكاتـب : - مشاركات : 0 - المشاهدات : 1 )           »          المقهـى الجليدى بدبـــى.... (الكاتـب : - مشاركات : 0 - المشاهدات : 1 )           »          المغرب ...سحر وجمال طبيعي..بلد الفصول الاربعة (الكاتـب : - مشاركات : 0 - المشاهدات : 1 )           »          مسجات عيد الاضحى والحج (الكاتـب : - مشاركات : 0 - المشاهدات : 1 )           »          عرض WWE SmackDown بتاريخ 28/11/2008 جوده XviD-MoRPH0 وحجم 700 ميجا تراكر مجاني وسريع (الكاتـب : - مشاركات : 0 - المشاهدات : 1 )           »          حصري اقوى برامج التحميل و تسريع التحميل فى العالم Download Accelerator Plus 9.0.0.3 Beta (الكاتـب : - آخر مشاركة : - مشاركات : 3 - المشاهدات : 5 )           »          Java SE Runtime Environment 6.0 Update 11 اصدار جديد ، على اكثر من سيرفر (الكاتـب : - آخر مشاركة : - مشاركات : 2 - المشاهدات : 4 )           »          غلطتي إني تعلمت الوفاء والناس كذابه (الكاتـب : - آخر مشاركة : - مشاركات : 1 - المشاهدات : 4 )           »          ا لعبة الشطرنج Kasparov Chessmate بحجم 9MB وعلى اكثر من سيرفر (الكاتـب : - آخر مشاركة : - مشاركات : 2 - المشاهدات : 7 )

 
العودة   منتديات سحر العيون > المنتديات التقنيه > منتدى البرامج > قسم شروحات البرامج
 



مقدمة فى برمجة Dll (لغة دلفي)

قسم شروحات البرامج


 
 
LinkBack أدوات الموضوع طرق مشاهدة الموضوع

 
قديم 12-15-2006, 08:03 PM رقم المشاركة : 1 (permalink)
معلومات العضو
مقدمة فى برمجة Dll (لغة دلفي)

مقدمة فى برمجة Dll (لغة دلفي)
إن موضوع DLL هو من المواضيع المهمة في مجال تطوير البرمجيات ،وهو يمكنك من الإستغلال الأمثل لقدراتك البرمجية, وجعل تطبيقاتك أكثر عالمية (اتساع مدى تداول برمجياتك) ،إلى غير ذلك من الأمور التى يوفرها DLLs لك والتي سأحاول من خلال هذه الدروس إسقاط الضوء عليها ،وقبل ذلك سأعرفك بمعنى هذا المصطلح DLLs الذي كثيراً ما يصادفك منتهيةً إلى شرح طريقة بناء واستخدام DLLs فى تطبيقاتك.

سؤال: هل استخدام DLLs جديد بالنسبة لك فعلاً ؟

جواب: طبعاً لا ،فأنت كمستخدم للنظام Windows تقوم باستخدام DLLs بشكل مستمر ، كيف ذلك ؟

إذا ألقيت نظرة على الحافظة Windows أو الحافظة Windows\system ستعرف معنى ما أقول ، ففى هاتين الحافظتين ستجد المئات من الملفات ذات الامتداد (.dll) .. لماذا وجدت هذه الملفات ؟ وما أهميتها ؟

فى الحقيقة هذه الملفات تحوى دوال Windows API وموارد النظام (Windows Resources) التي تستخدمها أثناء عملك في بيئة النظام Windows .

فمثلاً الدالة (LoadCursor) والدالة (DrawText) المستخدمتان في لغة دلفي هما معرفتان فى الملف (USER32.dll) ، وكل ماعليك القيام به لاستخدامهما هو تضمين الوحدة Windows ضمن الكلمة المحجوزة uses ،وهكذا تستطيع الوصول لهاتين الدالتين وغيرهما من دوال Windows API .

وكذلك الأمر بالنسبة لموارد Windows كصناديق الحوار (File Open, Print , Print Setup) وغيرها مخزنة كموارد Resources فى الملف (COMCTL32.dll).

من خلال هذا الاستهلال البسيط عرفنا أن ملفات DLLs هى جزء أساسي في بنية النظام Windows والتطبيقات العاملة تحته ، ولكن ما هو DLLs ؟

تعريف DLL: إن DLL هو اختصار للعبارة الإنجليزية (Dynamic Link Library) مكتبة الربط الديناميكية أو الحيوية ، وملف DLL هو عبارة عن واحدة أو أكثر من قطع الكود التى تخزن فى ملف بامتداد (.dll) وهو يعمل فى توحد مع الملف التنفيذي (.exe) لتوفير وظائف معينة للتطبيق.

وبالتالي ملف DLL هو ملف مترجم يتم استدعاؤه من البرامج التنفيذية ،لكنه هو ذاته ليس برنامجاً مستقلاً ولا يمكن تنفيذه بمفرده.

البرامج التى تستدعي DLL تدعى : البرامج المستدعية لأنها تستدعى دوال أو إجراءات من dll .

أنواع DLLs : يمكن تصنيف DLLs إلى نوعين هما :

1-CODE DLLs : عند احتواء ملف DLL على كود فقط .

2-RESOURCE DLLs : عند احتواء ملف DLL على مصادر مثل ملفات الصور ،ملفات الصوت ،السلاسل.

كما يمكن أن يحتوى ملف DLL واحد على كل من الكود والموارد معاً.

شكل الدوال والإجراءات فى DLL :

تظهر الدوال والإجراءات فى DLL فى شكلين :

1-دوال وإجراءات مصدّرة :وهى الدوال والإجراءات التى يصدرها DLL إلى التطبيقات أو ال DLLs الأخرى.

2-دوال وإجراءات داخلية: وهى الدوال والإجراءات التى للاستخدام الداخلى لنفس ال DLL ولا يمكن رؤيتها من خلال تطبيقات أو DLLs الأخرى.

سؤال: هل يمكنك أن تبني DLLs خاصة بك ؟

الجواب ببساطة نعم ،وهذا هو محور دروسنا ، حيث يمكننا أن نضيف أى عدد من DLLs الخاصة التى نقوم بإنجازها .

وطريقة استدعاء دوال وإجراءات DLLs التى ننجزها بأنفسنا لا تختلف مطلقاً عن طريقة استدعاء دوال وإجراءات Windows API .

رغم كثرة تساؤلاتنا فى هذا الدرس إلا أن السؤال التالي قد يلح عليك : لماذا أحتاج لبناء واستعمال DLLs ؟

يمكن تصنيف ما يقدمه لك استعمالك لل DLLs إلى الأمور المهمة التالية :

1-فعالية إعادة استخدام الكود:

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

وربما من الأمور التى لاحظتها خلال مشوارك البرمجى أن الكثير من الأكواد يتكرر استعمالها معك في كثير من التطبيقات (خاصة ذلك الكود المتعلق بالتعامل مع بيئة Windows من فورمات وصناديق رسائل وقوائم إلى آخره)،لإيضاح الموضوع أكثر لنفترض أنك كتبت قطعة كود (دالة مثلاً) لتعالج به خدمة معينة فى Windows وقد استغرق منك إنجاز هذا الكود الكثير من الوقت والجهد ،ألن يكون جميلاً إذا استطعت إعادة استخدام نفس الكود فى باقي تطبيقاتك التي تحتاجه دون أن تضطر لكتابته مرة أخرى وحتى لوكانت هذه التطبيقات مبنية بلغات برمجية أخرى غير لغة الدلفي كـ(Visual Basic, Visual C++) ؟ إن DLLs تمكنك من فعل ذلك.

والأفضل من هذا أنك تستطيع بيع DLLs التى أنجزتها أوتقديمها لمبرمجين آخرين بإمكانهم إستعمالها أيضاً.

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

2-تقاسم الكود فيما بين عدة تطبيقات:

فى حالة وجود عدة مستخدمين لكل منهم نظامه الخاص الذى يعمل عليه وجميع هؤلاء المستخدمين مرتبطين بشبكة واحدة .

قد يكون هناك جزء من الكود يحتاجه كل واحد منهم ،فبدلاً من كتابة هذا الجزء لعدة مرات حسب عدد المستخدمين فإن DLL يمكنك من كتابته لمرة واحدة ليشترك فيه جميع المستخدمين.

لنعطى مثالاً :إذا كان هناك خمس مستخدمين وقمنا ببرمجة خمس تطبيقات لهؤلاء المستخدمين (المستخدمين مرتبطين فى شبكة) لنفترض أن التطبيقات الخمسة يتكرر فيها جزء مشترك من الكود (متشابه) حجمه 100kb ،وبالتالى يوجد 500kb هى تكرار لنفس الكود ،باستخدام DLL يمكننا كتابة هذا الكود المتكرر لمرة واحدة وتخزينه فى ملف DLL ويمكن للتطبيقات الخمسة أن تصل إليه، وبالتالى نكون قد أنقصنا الحجم الكلى للكود بمقدار 100kb لكل واحد منها ،تظهر فائدة هذا الأمر بوضوح فى حالة وجود مئات المستخدمين أكثر من ظهورها مع هذا العدد المحدود.

3-تقسيم الكود:

إذا استعرضنا بلمحة سريعة تطور البرمجيات نجدها انتقلت عبر عدة مراحل فمن مرحلة البرمجة التسلسلية التى كان البرنامج فيها عبارة عن تسلسل طويل من سطور الأوامر لا يقطعه إلا أوامر القفز من جزء إلى آخر (GOTO) إلى مرحلة البرمجة الهيكلية التى تعتمد على تقسيم البرنامج إلى عدد من الدوال والإجراءات وصولاً إلى مرحلة البرمجة الغرضية التى حولت البرنامج إلى عدد من (الأشياء-الأغراض) لكل منها خصائصه ودواله وإجراءاته وطرقه التى يمكنه أن يورثها إلى أجيال أخرى من (ذات الغرض)، وكان الهاجس الأول للمبرمجين هو جعل برنامجك أكثر سلاسة وسهولة عند رغبتك فى تطويره ،ضمن هذا الإطار فإن تقسيمك لبرنامجك إلى عدة DLLs يجعل إدارته والتعامل معه أكثر سهولة عند تحديثه.

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

ونعيد القول بأن هذا الأمر تظهر أهميته فى حالة التطبيقات ذات الحجم الكبير ،ويمكنك ملاحظة أن أفضل البرامج فى السوق تعتمد هذه التقنية (ولك فى النظام Windows خير مثال عند ترقيته من إصدار إلى إصدار جديد).

4-تدويل برامجك:

منذ سنوات قليلة مضت كنت تستطيع كتابة برنامجك دون أن تقلق حول السوق العالمية ،حيث تستطيع كتابة البرنامج وبناء (menu items,dialog boxes, hint text ,error message)وغيرها باستخدام لغتك الوطنية ،وتنزل برنامجك إلى السوق دون القلق حوله بعد ذلك .

اليوم ، العالم أصبح كالقرية الصغيرة مع هذا التطور فى استخدام الإنترنت ،أصبحت تكتب برنامجك وتضعه على الإنترنت وخلال ساعات وربما دقائق ملايين الأشخاص حول العالم سيتمكنون من الوصول إليه ،سيثير اهتمامهم وسيلتقطونه فى ذات الوقت ،هذه الظاهرة تعنى أنك يجب أن تخطط سابقاً وتعد لترجمة برنامجك إلى لغات أخرى.

طريقة واحدة يمكن استخدامها وهى بناء RESOURCES DLLS الذى يحتوى سلاسل مصدرية بلغات مختلفة ،فإما أن تعمل DLL منفصل لكل لغة فيكون لديك عدة DLLs بعدة لغات وتقوم فى تطبيقك بتحميل DLL الذي يحوي السلاسل المصدرية للغة المطلوبة ،أو أن تعمل DLL واحد ويحوي جميع السلاسل المصدرية بكل اللغات ثم تحمّل السلاسل المضدرية للغة المطلوبة من هذا الـ DLL .

فى زمن RunTime تستطيع استخدام الدالة LoadString لتحميل السلاسل وإسنادها إلى أدوات ومكونات البرنامج المختلفة حسب احتياجاتك.

مرة أخرى ،التخطيط المسبق يمكن أن يغنيك عن كثير من العمل لاحقاً ،فإذا خططت تطبيقك ومفهوم (التدويل) فى ذهنك فسيكون من السهل عليك ترجمة تطبيقك إلى لغات أخرى عندما يكون ذلك ضرورياً عوضاً عن كتابته مرة أخرى.

5-فعالية استخدام مصادر Windows :

كلما كان تطبيقك قادراً على استغلال موارد النظام بشكل جيد كلما أعتبر تطبيقك قوياً .

هذه الأيام الأنظمة أسرع ،تملك ذاكرة RAM أكبر ،ومساحة Hard Disk أكبر ، أكثر من أي وقت مضى ،وعملك كمبرمج أن تجعل تطبيقاتك تستغل هذه الموارد بالشكل الأمثل.

إن DLLs يساعدك فى تحقيق ذلك ،لنرجع إلى مثالنا السابق بخصوص التطبيقات الخمسة ،قلنا أن هذه التطبيقات تشترك فى جزء من الكود وقلنا بأننا باستخدام DLLs فإننا نستطيع أن نضع هذا الكود المشترك فى ملف DLL ويمكن لكل واحد من التطبيقات الخمسة أن يصل إليه ،عندما ثلاثة تطبيقات منها مثلاً تعمل فى نفس الوقت فإنها ستحمًل بعضاً من ذات الكود داخل الذاكرة ،هذا تخريب لمصادر النظام ،لأن كل برنامج يحمل نسخته الخاصة لنفس الكود ،بدلاً عن ذلك يمكنك باستخدام DLL لتحميل الكود مرة واحدة فقط ،كل التطبيقات يمكنها استخدام نفس الكود فى الذاكرة وبالتالى ينقص الهدر فى النظام (هنا حالة التحميل الديناميكي للـDLL والتى سنناقشها فى دروس قادمة).



الخلاصة:

من خلال هذا الدرس استطعنا أن نكون فكرة واضحة عن ماهية DLL ،وعرفنا لماذا نحتاج DLL كمفهوم من مفاهيم تطوير البؤمجيات تحت النظام Windows .

المراجع:

1- Teach Yourself Borland Delphi In 21 Days

2-Essential Pascal

3-Help of Delphi

4-Help of Visual Basic







التوقيع

Kleider machen leute

 

 
قديم 01-27-2007, 03:02 AM رقم المشاركة : 2 (permalink)
معلومات العضو
افتراضي

شكرا يا بكار تسلم ايدك







التوقيع

 

 
قديم 02-07-2007, 06:08 PM رقم المشاركة : 3 (permalink)
معلومات العضو
افتراضي

شكرا سبيد على مرورك







التوقيع

Kleider machen leute

 

 
قديم 02-28-2007, 05:06 PM رقم المشاركة : 4 (permalink)
معلومات العضو
افتراضي

مشكووووووووربكار







التوقيع


هل سيأتي ذلك اليوم

الذي يتوج فيه القلب بعرش السعادة الكاملة..؟

لا أعلم ولكن هو الأمل لي بهذه الحياة المؤلمة حقاً
 

 

مواقع النشر


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
طرق مشاهدة الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة
الانتقال السريع إلى

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
لو عندك طبق اتكسر لا ترمية ...!! عاشقة القمر قسم الصور والخلفيات 5 07-30-2007 03:36 AM

قوانين الرسائل الخاصة :بعد كل ما يحدث عن طريق الرسائل الخاصه ..سيتم مراقبه الرسائل الخاصة ان لزم الامر ... الرسائل الخاصه خاصه بالمنتدى وليس لها اهداف خارجيه ... وسيتم معاقبة المتعديين على القوانين .... ادارة المنتدى الرسائل الخاصه

Site Map
احصائيات منتديات سحر العيون في رتب


الساعة الآن: 11:41 PM

أقسام المنتدى

المنتديات العـــــــــامه @ القــســـم العـــــام @ كــرسـى الاعـــتــراف @ المنتدى الاســــلامــى @ قسم الترحيب بالاعضاء الجدد @ قسم الاخبار واحداث الساعه @ قسم الصور والخلفيات @ المنتديات الادبيه @ منتدى الشعر والخواطر @ منتدى كلام فى الحب @ منتدى القصص والروايات @ المنتديات الفنيه @ منتدى الاغانى العربيه @ قسم الالبومات الكامله @ قسم اغانى السينجل @ قسم الاغانى الشعبيه @ قسم الكليبات العربيه @ قسم كلمات الاغانى العربية @ ســــينما سحر العيون @ منتدى الافلام العربيه @ منتدى الافلام الاجنبيه @ منتدى افلام الكارتون والانمى @ المنتديات التقنيه @ منتدى البرامج @ قسم برامج الكمبيوتر والانترنت @ قسم برامج الحماية والامان @ قسم برامج الملتى ميديا @ قسم برامج الجرافيك @ عالم الفوتوشوب والتصميم @ قسم تطوير المنتديات والمواقع @ المنتديات الترفيهية @ قسم مسابقات الاعضاء @ قسم الفرفشـه والضحك @ قسم العاب الكمبيوتر @ المنتديات الالكترونيه @ منتدى الجوال العام و برامج الجوال @ قسم العاب الجوال @ قسم النغمات والويفات ومقاطع البلوتوث للجوال @ قسم رسائل الجوال @ منتدى المراه والمجتمع @ قسم الامومة والطفولة @ قسم الديكور المنزلى وعش الزوجية @ مطبخ سحر العيون @ قسم الطب والحياه والطب البديل @ المنتديات الرياضيه @ منتدى الدورى المصرى @ منتدى الرياضه الاوروبيه @ مكتبه الفيديو والصور @ منتدى المصــــــــــارعه الحره WWE @ المنتديات الاداريه @ قسم شروحات البرامج @ قسم الاغانى والكليبات الاجنبيه @ قسم الابراج وعلوم الفلك @ قسم اللغات الاجنبيه @ قسم العجائب والغرائب @ قسم مشجعى النادى الاهلى @ منتدى الهكر والاختراق @ قسم الشعر والخواطر المنقوله @ مملكــــــه الرعــــب @ قسم الصوتيات والمرئيات الاسلاميه @ قسم مشجعى نادى الزمالك @ قسم الاناقه والجمال واخر صيحات الموضة @ الحياة الزوجية --> آدم VS حـــواء <-- @ اخبار النجوم واغانيهم وصورهم @ منتدى كمـــــــال الاجســــــام @ منتدى الفنـــون القتـــاليـــة @ قسم التاريخ والحضارات @ قسم السياحه ومعالم الدول @ قسم كلمات الاغانى الاجنبية @ منتدى السيـــــارات والمحركات @ قسم القرآن الكريم وعلومه @ قسم الحديث الشريف وعلومه @ طريق التوبة @ :::..قسم النقاشات الجادة..::: @ قسم دروس الشيخ ابو اسحاق @ قسم دروس الشيخ محمد حسان @ قسم دروس الشيخ محمد حسين يعقوب @ قسم دروس الشيخ محمود المصرى @ قسم دروس الشيخ مسعد أنور @ منتدى المسلسلات الاجنبية والعربية والمسرحيات @ °ˆ~*¤®§(*الخــيـــمــة الرمضــانية§*)§®¤*~ˆ° @ اهلا وسهلا شهر الصيام @ المــــســــــابقة الرمضـــانية @ القراءن الكريم والشهر الكريم @ قسم دروس الفوتوشوب @ قسم مسلتزمات الفوتوشوب @ حرب التماسيح (الاولاد) والسحالى (البنات) @ قسم الكتب الالكترونية @ المنتديات الاسلامية @ منتدى الاقسام المنوعة @ قسم الاهداءات والمناسبات @ قسم خاص بالافلام المرفوعه حصريا باسم المنتدى @ قسم الاسماك وطيور الزينة @ طيور الزينة @ قسم اليوتيوب الاسلامى @ قسم اليوتيوب للكليبات العربيه والاجنبيه @ منتدى الافلام الاجنبيه بواسطة التورنت @ قسم تصاميم الاعضاء للاعضاء @ قسم مشاهده الافلام العربية OnLiNe @ قسم مشاهده الافلام الاجنبية OnLiNe @ °ˆ~*¤®§قسم تطوير الذات §®¤*~ˆ° @ منتدى الافلام الهندية (بوليود) @ احداث الساعه بالمنتدى @ مسلسل سنوات الضياع ومسلسل نور التركى @ منتدى الستلايت وفك الشفرات @ قسم الشباب والبنات @ قسم ابداعات الاعضاء @ قسم دوره الفوتوشوب والايمج ريدى @ رابطه محبى عمرو دياب @ رابطه محبى محمد فؤاد @ رابطه محبى تامر حسنى @ رابطه محبى نانسى وهيفاء @ مسلسل Terminator 1&2 @ مسلسل Prison Break 1&2&3&4 @ مسلسل Fringe @ قسم مشجعى نادى الاسماعيلى @ اقسام تطوير vbulletin @ قسم تطوير منتديات 3.6 @ قسم تطوير منتديات 3.7 @ قسم استايلات المنتديات 3.6 ,3.7 @ قسم مشاكل وطلبات المنتديات @



منتديات سحر العيون تمنى لكم وقت ممتع معنا
جميع الحقوق محفوظة لمنتديات (سحر العيون)

منتديات سحر العيون

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139