السلام عليكم .
- قد يكون البرنامج معروف لدى البعض .. وقد يكون الموضوع مكررا .. لم أبحث صراحة .. ولكن زيادة الخير خيرين ,,
- هذا البرنامج ليس خاص بمبرمجي السي طبعا .. ويستفيد منه كل مبرمج يعتمد على ملفات DLLs و EXE .. ولكن أحببت وضعه هنا .. لأن أكثر من سيحتاجه هذه الايام هم مبرمجي السي بلس ( والدلفي أيضا ) .. بحكم عدم وجود frameWork مثل لغات الدوت نت .. ولغة الجافا .. وأيضا لوجود ميزة خاصة بمبرمجي السي بلس سأتكلم عنها لاحقا .
هذه الأيام احتجت كثيرا للبحث و التحرّي عن ملفات DLLs .. احتاجها كثيرا .. و وجدت برنامج جميل اسمه
Dependency Walker
http://www.dependencywalker.com/
وهو برنامج مجاني ومفيد جدا .
الفائدة منه :
1- فتح ملفات DLLs و EXE واستنتاج جميع ملفات DLLs التي يعتمد عليه ذلك الملف وهذا مفيد طبعا لمن يريد توزيع تطبيقاته لاجهزة أخرى .. فبدلا من السؤال والاستفسار .. هل اشتغل البرنامج أولا ... فان كل الاسئلة ستنتهي بمجرد استخدام هذا البرنامج بحول الله وقوته .
2- استخراج جميع الدوال والأصناف ( Functions - Classes ) الموجودة داخل ملف DLL .. وعرضها بشكل مناسب لمبرمجي السي بلس .
3- تحدد دوال معينة من الدوال المستخرجة من الفقرة 2 .. من ملف DLL .. وهي الدوال التي هي مستخدمة بالفعل من قبل البرنامج أو ملف dll .
سيتم توضيح النقاط السابقة خطوة بخطوة ان شاء الله .
1- فتح ملفات DLLs و EXE واستنتاج جميع ملفات DLLs التي يعتمد عليه ذلك الملف وهذا مفيد طبعا لمن يريد توزيع تطبيقاته لاجهزة أخرى .. فبدلا من السؤال والاستفسار .. هل اشتغل البرنامج أولا ... فان كل الاسئلة ستنتهي بمجرد استخدام هذا البرنامج بحول الله وقوته .
بعد فتح ملف DLL الذي تريد .. او ملف exe .. ستظهر قائمة بالشكل التالي :
قمت بفتح تطبيق عندي .. وهو عبارة عن لعبة قمت بتطويرها .. ولكن عانيت الامرين .. لاني لم اكن استطيع تشغيلها .. في الاجهزة التي لا تحوي Visual Studio ... حتى قام الاخ سلوان بمساعدتي في هذا الموضوع :
هذا البرنامج يحدد لك جميع الملفات التي تحتاجها لتشغيل هذا التطبيق . . لاحظ أن الملفات المظللة باللون الاصفر .. هي ملفات غير موجودة في النظام ( أنا من حددتها بالاصفر وليس البرنامج ) ... وهي الملفات التي تحتاج لتوزيعها مع تطبيقك ..
أما الملفات الاخرى فهي ملفات النظام .. و تأتي مع نظام التشغيل .. ولا تحتاج لاضافتها .. أشهر هذه الملفات :
GDI32.dll - kernel32.dll - user32.dll - winmm.dll -opengl32.dll - glu32.dll الخ ..
هذه الملفات كما ذكرت .. موجودة مع أي نظام تشغيل ويندوز ..
2- استخراج جميع الدوال والأصناف ( Functions - Classes ) الموجودة داخل ملف DLL .. وعرضها بشكل مناسب لمبرمجي السي بلس ... وتحديد الدوال المستخدمة .
لنأخذ أي مثال على ذلك .. وليكن مثالنا السابق ... ونختار الملف المسمى بـ GDI32 :
ستظهر لنا قائمة بجميع الدوال الموجودة في هذا الملف ...
كما ستظهر قائمة بالدوال التي استخدمناها من خلال تطبيقنا age.exe .
حقيقة .. استفدت كثيرا من هذا البرنامج .. فمثلا قمت بفحص الملف OpenGL32.DLL .. واكتشفت ماهي الداول التي يعتمد عليها هذا الملف من الملف GDI32 .. وبالتالي صار لدي تصور واضح عن علاقة OpenGL بال GDI32 .
جرب أن تفحص أحد ملفات البرامج العملاقة مثل Adobe Photoshop .. وستستمتع فعلا :) .
3- عرض خاص بمبرمجي السي بلس .
كما نعلم .. أنه يمكن تصدير كلاس كامل class .. الى ملف DLL .. بالنقر على ايقونة التحويل الى طريقة عرض ++C .. سيبدو الامر هكذا :
أتمنى أن يعجبكم هذا البرنامج ,,
السلام عليكم .
