ما هو ملف RES؟
يمكن أن ينتمي الملف الذي يحتوي على لاحقة .res أو ملحق إلى العديد من فئات تنسيق الملفات. نحن هنا نناقش تنسيق ملف RES وهو C ++ Compiled Resource Script؛ ملف ثنائي تم إنشاؤه بواسطة Microsoft Resource Compiler (rc) الذي يحتوي على بيانات الموارد ؛ بناءً على محتويات ملف تعريف الموارد ؛ ذات الصلة بمشروع البرنامج الأصلي. عادةً ما تتم إعادة تنسيق ملف .res إلى ملف كائن مورد لربطه بالملف القابل للتنفيذ لتطبيق ما.
تنسيق ملف RES
ينتمي تنسيق الملف RES إلى Microsoft Resource Compiler (rc). مترجم المورد هو أداة تجمع الموارد مثل المؤشرات والرموز والقوائم ومربعات الحوار التي يستخدمها تطبيقك. عادةً ما يكون لملفات الموارد امتداد .res؛ يحتوي على موارد ، مثل المؤشرات والصور ومعلومات الإصدار. يمكن أن يكون ملف RES ملف موارد 16 أو 32 بت.
هيكل ملف الموارد
يحتوي ملف الموارد على سلسلة من إدخالات الموارد المختلفة. يحتوي كل إدخال على رأس مورد والبيانات ذات الصلة. عادةً ما يكون رأس المورد بمحاذاة DWORD في الملف ويحتوي على ما يلي:
- A ** DWORD ** لتحديد حجم رأس المورد
- A ** DWORD ** لتحديد حجم بيانات الموارد
- نوع المورد
- اسم المورد
- معلومات موارد إضافية
تحدد بنية رأس المورد تنسيق ملف RES. بيانات المورد تتبع رأس المورد. تضيف بعض الموارد أيضًا نمط رأس مجموعة خاص بالموارد لتوفير معلومات حول مجموعة من الموارد. فيما يلي بعض أنواع إدخال الموارد ووصفها:
موارد جدول المسرع
جدول التسريع هو إدخال مورد في ملف RES بدون رأس مجموعة. يحدد النمط ** ACCELTABLEENTRY ** كل إدخال في جدول التسريع. قد يحتوي ملف RES على جداول تسريع متعددة.
موارد المؤشر والأيقونة
على الرغم من أن النظام يعتبر كل رمز ومؤشر كملف واحد ، إلا أنه يتم تخزينهما في ملفات RES كمجموعة من موارد الرموز أو مجموعة من موارد المؤشر. تنسيقات ملفات الرموز وموارد المؤشر هي نفسها. يتبع رأس مجموعة الموارد كافة الرموز الفردية أو مكونات مجموعة المؤشرات في ملف .res.
موارد مربع الحوار
يتم تحقيق مربع حوار أيضًا كإدخال مورد في ملف RES. يحتوي على ** DLGTEMPLATE ** نمط رأس مربع حوار ونمط ** DLGITEMTEMPLATE ** واحد لكل عنصر تحكم محدد في مربع الحوار. تشرح أنماط ** DLGTEMPLATEEX ** و ** DLGITEMTEMPLATEEX ** تنسيق موارد مربعات الحوار الموسعة.
موارد الخطوط
يحتوي مورد القائمة على نمط ** MENUHEADER ** لاحقًا نمط واحد أو أكثر من أنماط ** NORMALMENUITEM ** أو ** POPUPMENUITEM ** ، واحد لكل عنصر قائمة في قالب القائمة. تشرح أنماط ** MENUEX_TEMPLATE_HEADER ** و ** MENUEX_TEMPLATE_ITEM ** تنسيق موارد القائمة الموسعة.
موارد جدول الرسائل
يتكون جدول الرسائل من نص منسق لعرضه كرسالة خطأ أو في مربع رسالة. النمط الرئيسي في مورد جدول الرسائل هو بنية ** MESSAGE_RESOURCE_DATA **.
موارد الإصدار
النمط الرئيسي في مورد الإصدار هو ** VS_FIXEDFILEINFO **. تتضمن الأنماط الإضافية ** VarFileInfo ** لتخزين البيانات المتعلقة بمعلومات اللغة ، و ** StringFileInfo ** لمعلومات السلسلة المخصصة.