![]() |
|
خطوات بناء ملف تنفيذي تطبيق ويندوز (Win32) - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي التقنية (https://delphi4arab.net/forum/forumdisplay.php?fid=6) +--- قسم : دلفي والتعامل مع الملفات (https://delphi4arab.net/forum/forumdisplay.php?fid=22) +--- الموضوع : خطوات بناء ملف تنفيذي تطبيق ويندوز (Win32) (/showthread.php?tid=2737) الصفحات:
1
2
|
خطوات بناء ملف تنفيذي تطبيق ويندوز (Win32) - TF6M - 25-01-2011 بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته
سنقوم بتوضيح خطوات بناء ملف تنفيذي تطبيق ويندوز (Win32), بطريقة مبسطة , أولا خطوات العملية :
1- ترجمة الملف المصدري (Compiling)
2- تحويل OMF الى Intel OMF
3- ربط Coff بمكتبات النظام , إنتاج ملف تنفيذيالمرحلة الأولى :
عملية ترجمة الكود سورس إلى كود أسمبلي (لغة الآلة) , لكي تتم العملية بنجاح بمرور 3 مراحل للتحقق الى إنتاج ملف Obj
- lexical analysis (التحقق من صحة الـ Token = المفردات المحفوظة if,do,begin …….ect)
- syntaxic analysis (التحقق من ترتيب الـ Token & بناء شجرة بإستخدام الـ Token)
- semantic analysis (التحقق من مبدأ المرجعية , نتأكد من القيمة المسندة لمتغير ما من نفس الطبيعة)
- code generation
حتى يتم توليد ملف مترجم (operation assembly code) يجب نجاح كل مرحلة (تم ذكر المراحل دون التفصيل لأنها موضوع أخر).
يمكن تحقيق ذلك سواء بكتابة MakeFile أو تنفيذ مباشر Command Line , يكفي كتابة dcc32 في الـ Cmd لتوضيح بارامترات الترجمة .مثلا لإنتاج ملف OMFخام : كود : dcc32 -JP _MsgBox.pasالمرحلة الثانية :
إنطلاقا من دلفي 4 , قامت بورلاند بتحويل OMF (Object Module Format)i من Intel Omf الى Borland Omf
Borland Omf : قابل للربط فقط بـ Borland Linker (نحول Omf الى Coff : ممكن)
أدوات عملية : RmCoff By mickeylan / OMF2D by EliCZ Intel Omf : قابل للربط بـ microsoft Linker (نحول Coff الى Omf لإستعمالها في دلفي : ممكن)
- يمكن معرفة محتوى الـ lib / Obj بواسطة TDUMP المرفق في مجلد Binأدوات عملية : Object file converter كود : TDUMP -C user32.lib (COFF only)
TDUMP -d MsgBox.obj (OMF only )مواضيع ذات صلة : انتاج ملف Object . إستخدام ملف lib المرحلة الثالثة :
يتم دمج كل من الأبجكت فايل (DCu) & ملفات الريسورس & ملفات Bin , لإنتاج ملف تنفيذي Exe صورة توضيحية: ![]() مثال : كود : unit _MsgBox;
interface
procedure Start;
implementation
function MessageBoxA(hWnd: Cardinal; lpText, lpCaption: Pchar; uType: Cardinal): Integer; stdcall;
external 'user32.dll' name '_MessageBoxA@16';
function MessageBeep(uType: Cardinal): Integer; stdcall;
external 'user32.dll' name '_MessageBeep@4';
procedure Start;
begin
MessageBeep($FFFFFFFF);
MessageBoxA(0,PChar('TF6M | D4A.Com'),
PChar('Www.Delphi4Arab.Com'),0);
MessageBeep($FFFFFFFF);
End;
end.من نوع Cardinal حجمه 4 Byte , يمكن أيضا فتح الـ Lib بأحد محررات الـ Hex أو Ida لمعرفة لائحة الدوال & الإجراءات المخزنة . الأن نأتي إلى عملية الترجمة + التحويل + الربط , عبارة عن MakeFile مرفق, هذا الأخير يتطلب تعديل مسار الـ Lib فقط !! بالتوفيق,, خطوات بناء ملف تنفيذي تطبيق ويندوز (Win32) - kachwahed - 25-01-2011 وعليكم السلام ورحمة الله وبركاته موضوع جميل ![]() إقتباس :- أيضا يمكننا إستخدام الـ Object File الناتج عن المترجمات الأخرى c/c++...بالفعل، مع التنبيه أنه يجب استخدام Borland C Compiler لإنتاج ملفات obj متوافقة وإلا سنحصل على "Bad object file format" ثم نلجأ إلى التحويل والمزالق المترتبة عنه... كملاحظة، يمكن باستخدام خيارات المشروع توليد Obj عوض Dcu من(دلفي 7): Project -> Options -> Linker -> Generate C object files بالتوفيق. خطوات بناء ملف تنفيذي تطبيق ويندوز (Win32) - me_delphi - 28-01-2011 وعليكم السلام ورحمة الله وبركاته معلومات مهمة أخي tf6m بالتوفيق. خطوات بناء ملف تنفيذي تطبيق ويندوز (Win32) - محمد عبد العزيز - 28-01-2011 السلام عليكم ورحمة الله للعلم ما كان يميز مترجم Borland من ايام Turbo Pascal انه لم يكن ينتج ملف obj (بالقرص و انما بالذاكرة) بل ينتج مباشرة الملف التنفيذي ويظهر كانها مرحلة واسرع سرعة بذلك الوقت كل مترجمات اللغات الاخرى (مثل C/C++وFortran الخ) تمر بمرحلتين تنتج اولا ملفات الobj بعد الترجمة Compile ثم ثانيا مرحلة الربط Link تنتج الملف التنفيذي ولاثراء الموضوع: لما هذه الطريقة (ما الفائدة) ؟ في حين يكفي الضغط على الزر F9 من دلفي لانتاج ملف تنفيذي خطوات بناء ملف تنفيذي تطبيق ويندوز (Win32) - kachwahed - 28-01-2011 أعتقد أن هذا يسهل أمور كثيرة منها: - توزيع أجزاء من البرنامج دون السورس (مكتبات، مكونات...) - تسهيل إعادة الاستخدام ضمن نفس البرنامج أو في برامج أخرى - تقليص حجم الكود (باستخدام Includes...) خطوات بناء ملف تنفيذي تطبيق ويندوز (Win32) - TF6M - 28-01-2011 و عليكم السلام و رحمة الله و بركاته "لما هذه الطريقة (ما الفائدة) ؟ في حين يكفي الضغط على الزر F9 من دلفي لانتاج ملف تنفيذي" - بإختصار Application Size Optimization , كان يكفي الضغط على زر F9 لنتحصل على تطبيق 14 Ko 1- لم نستخدم الـ VCL (حتى و إن يمكن تعويضه بـ KOL لكن وقت أقل + حجم أقل) 2- الإستغناء عن إظافات الـ RTL (Delphi Runtime Library "..\Source\Rtl\MakeFile")i . - بالتحديد ملف System الذي يترجم مع جميع الوحدات المستخدمة (مقالة) , و هذا سبب إستخدام الربط الستاتيكي ,أي دمج الكود المصدر مباشرة من الـ LIB 4- لو لاحظنا بنية الملف الناتج (PE) , نجده يحتوي عدد أقسام اقل من الذي ينتجه الـ Borland Linker هذا ما أعرفه خطوات بناء ملف تنفيذي تطبيق ويندوز (Win32) - محمد عبد العزيز - 28-01-2011 اضافة الى ما ذكر الطريقة باختصار دلفي ينتج ملف تنفيذي EXE/DLL ولا يسمح بانتاج sys ما الحل ؟ 1- استخدام مترجم Compiler من Borland لماذا ؟ بكل بساطة لاننا نستخدم دلفي/ نبرمج بباسكال Pascal 2- استخدام Linker من مايكروزفت لماذا ؟ لانتاج ملف sys خطوات بناء ملف تنفيذي تطبيق ويندوز (Win32) - attia fathy - 14-05-2011 أفادك الله وجزاك كل الخير على ماقدمت وأحسنت فيه فالموضوع رائع والشرح أروع .. شكراً شكراً
خطوات بناء ملف تنفيذي تطبيق ويندوز (Win32) - mahboub2011 - 22-12-2011 شكرا للفائدة عندي سوال فقط بالنسبة للملف omf2d.exe لمادا تعتبره الافيرا والافجي ملف ضار بالجهاز خطوات بناء ملف تنفيذي تطبيق ويندوز (Win32) - Basilisk - 18-03-2015 mahboub2011 كتب :شكرا للفائدةانا ايضا عندي مشكلة عندما احمل المرفق يحذفه هل من بديل ؟ |