مكتبة الربط الديناميكي (Dynamic-link library أو DLL) هو مفهوم المكتبة المشتركة في نظام مايكروسوفت ويندوز وأو إس/2.[1][2][3] تستخدم المكتبة غالبا نسق .DLL
و.OCX
(للمكتبات المحتوية على أكتف إكس) أو .DRV
(للمكتبات المحتوية على تعريفات أجهزة النظام).
من أمثلة المكتبات؛ مكتبات الأيقونات ومكتبات الخطوط.
نبذة قصيرة عن مكتبة الربط الدينياميكية
DLL (Dynamic Link Library) هي عبارة عن مجموعة من البرامج الصغيرة (Small Programs) يتم استدعائها عند الحاجة إليها من البرامج الكبيرة أو برامج التنفيذية عند عملها، وملف الـ DLL يجعل البرنامج التنفيذي يتصل بأداة معينة (Device) مثل الطابعة وغيرها من الادوات، أو قد يحتوي على مجموعة من الرموز (Codes) من اجل أداء امر معين. فعند حاجة الملف التنفيذي لملف الـ DLL فانه يقوم باستدعائه واستخدام الامر المناسب له من بين مجموعة الاوامر التي فيه.
مثال على ذلك برنامج تنفيذي بحاجة إلى مكان فارغ بالقرص الصلب, يقوم هذا البرنامج باستدعاء ملف الـ DLL الذي يحتوي على الاوامر اللازمة لذلك، فيقوم ملف الـDLL بأخبار البرنامج التنفيذي عن المكان الفارغ، وهذا يجعل البرنامج التنفيذي اقل حجما ودون الحاجة إلى كتابة الامر الذي اصلا موجود. وبالتالي لن تحتاج جميع البرامج كتابة الاوامر التي تحتوي على معلومات عن الأماكن الفارغة، وهذا ما يوفره ملف الـ DLL المختص بذلك
فوائدها وخصائصها
التقليل من مساحة الـRAM المستخدمة
أحد ميزات ملفات الـ DLL أو بالاحرى فائدتها، هي عدم الحاجة إلى تخزينها في ذاكرة الوصول العشوائي مع البرنامج التنفيذي الذي يعمل، وبالتالي توفير المساحة في الـ RAM، مثلا عند عمل على معالج النصوص وورد وارادة طباعة النص على الطابعة، فانه يتم استدعاء ملف الـDLL الخاص بالطابعة دون الحاجة إلى تخزينه بالـ RAM مع البرنامج التنفيذي، ويتم استخدام الاوامر التي فيه لطباعة النص.
إدارة الذاكرة
فملفات الــ DLL مصنفة إلى قطاعات، وكل قطاع يحتوي على الصفات الخاصة فيه، مثل قابل للكتابة(Writable) أو فقط للقراءة(Read-Only)، تنفيذي أو غير تنفيذي. و الرموز(Codes) في ملفات الـ DLL يتم استخدامها باكثر من برنامج تنفيذي واحد وبالتالي يتم وجوده في مكان واحد في قطاع محدد يالقرص الصلب. ولا داعي لوجوده في أكثر من مكان لاكثر من برنامج وبالتالي سهولة الوصول اليه.
استيراد المكتبات
فكل ملف DLL يحتوي على عنوان استيراد(Import Address) خاص به، فحين حاجة ملف تنفيذي إلى هذا الملف فانه يقوم بطلب هذا العنوان لاستدعاء الملف. حيث يوجد جدول للعنوانين خاص لملفات الــ DLL يتم الحصول على العناوين منه واستدعاء الملفات المطلوبة.
فملفات الــ DLL هي ملفات تنفيذية صغيرة لا يمكن ان تشتغل وحدها، تشتغل فقط من خلال برنامج تنفيذي كبير، مثل عمل سيارة بمحرك، فلا يمكن عمل السيارة دون المحرك.
الأخطاء المحتملة عند استدعائها برمجيا
و حين حدوث استدعاء بطريقة خاطئة، سوف يظهر خطأ GPF(General Protection Fault)(خطأ حماية عام). فان سبب هذا الخطأ قد يكون خلل في عملية الاستدعاء أو عدم وجود الاوامر المطلوبة في الملف الـ DLL المستدعى أو عدم وجود الملف اصلا أو ان الملف المستدعى لا يتفق مع نظام التشغيل الموجود.
و قد يظهر الخطأ خلال عملك على الويندوز أو عند تشغيلك لبرنامج أو لعبة على الكمبيوتر، وتحتوي نافذة الخطأ على اسم ملف الـ DLL ومعلومات عن الخلل الذي حدث
مراجع
- Petrusha, Ron (2005-04-26). "Creating a Windows DLL with Visual Basic". O'Reilly Media. مؤرشف من الأصل في 20 يونيو 201711 يوليو 2009.
- "Linker Support for Delay-Loaded DLLs". Microsoft Corporation. مؤرشف من الأصل في 04 يوليو 201711 يوليو 2009.
- MSDN, Using extern to Specify Linkage نسخة محفوظة 04 أكتوبر 2017 على موقع واي باك مشين.
وصلات خارجية
- مكتبات الربط الديناميكي: التطوير والاستخدام للكاتب بن العيد
- مكتبات الربط الديناميكي: تحميل الملفات مع الشرح