هل يستطيع النظام استيعاب ملفات DLL file ?


التعليقات

الDLL شىء و الruntime الذى تقصده شىء أخر (مثل ذلك الخاص بجافا أو فيجوال بيسك أو دوت نت)

نظام ويندوز يعرف ملفات DLL, و هى ملفات خاصة بويندوز فقط,

عندما يقوم الEXE باستدعاء الDLL يقوم النظام بتحميلها و يصبح الProcedure الذى تم طلب تحميله جزءا من البرنامج الEXE, و يتم التعامل معه و كأنه اجراء عادى داخل الEXE و داخل نفس الذاكرة.

المكتبات ديناميكية الربط أيا كان نوعها هى تماما مثل المكتبات الثانبة .lib لكن مع فارق مهم, أنه لا يتم تحميلها و استدعائها الا اذا تم طلب ذلك من داخل البرنامج و هى غير مدمجة داخل الEXE و لكن خارجة.

لا, ملفات DLL خاصة بويندوز فقط.

لينكس على ما أعتقد لديه شىء أخر يسمى Shared Library و رمزه .so لكنها تعمل بشكل مختلف قليلا.

ملفات DLL هى اصلا ملفات بلغة الألة مثل الEXE تماما, لكن الفارق الوحيد ان ليس لها Entry point أى ليس فيها اجراء الmain أو الWinMain الخاص بويندوز, لها اجراء أخر هو dll load يعمل عندما تستدعى الDLL, و اجراءات أخرى فقط يتم استدعائها من داخل الEXE الذى طلب تحميلها.

يمكنك تخيل DLL هى مجموعة من الاجراءات ليس لها نقطة رئيسية يستدعيها النظام مثل int main()

ملفات DLL تحتوي على دوال ، الأخيرة يتم نداءها من قبل ملف EXE ، في حالة فقدان الملف

أو تلفه عندها لن يعمل ، مثال على ذلك Windows API و تقريبا لا يوجد برنامج عامل على نظام

windows إلا و يلجأ لها ، و هذا لا يعني أن نظام التشغيل ينفذ ملفات DLL هو فقط يستخرج

منها الدوال(الحالة العامة !)

هل من طرق لدمج الruntime مع البرنامج(exe) ؟

لم أفهم تماما السؤال ، لأن مثل هذه البرامج تكون منفصلة يمكنك دمجها في ملف التنصيب

لكن داخل ملف EXE نفسه ، لا أعتقد !

عموما ألق نظرة على هذا الرابط ، به شرح لعمل برامج .Net

العفو ، و أتمنى لك كل التوفيق


برمجة

المواضيع والنقاشات المتعلقة بالبرمجة بشكل عام او لغات البرمجة التي لايوجد لها مجتمعات فرعية.

24.6 ألف متابع