السلام عليكم
MsgCaption db "اول برنامج اسمبلى",0
كما تلاحظ اخى فإن السطر ينتهى بصفر null وهو علامة التوقف, يعنى عندما تستدعى اى function من المتوقع ان يقراء نص وتعطيه عنوان اول حرف, فإنه يقراء حتى يصل إلى علامة الصفر والتى تعنى null:
اقتباسو dbمعناها بايت واحد فلماذا اخترناها هي بالذات
لان النص يتكون من حروف وكل حرف هو عباره عن byte.
اقتباسفيما يخص البرنامج لم اجد مشاكل في الملفين الاولين لكن لدي العديد من الاسئلة فيما يخص ملف الكود منهاهل تعتبر الوصلتين WinMain و Wnd proc
كبرنامجين صغيرين في البرنامج الام
WinMain هو الذى يقوم بإنشاء النافذه وينظر الحصول على الاوامر من نظام التشغيل,
إذا حصل على امر يقوم بإستدعاء Wnd proc, والذى بدوره يقوم بتنفيذ الامر.
اقتباسوالوصلة الثانية ليست مذكورة في البرنامج الام فكيف يتم استدعاؤها
لو لاحظت فى WinMain ستجد هذا الكود.
.WHILE TRUE invoke GetMessage, ADDR msg,NULL,0,0 .BREAK .IF (!eax) invoke TranslateMessage, ADDR msg invoke DispatchMessage, ADDR msg .ENDW
هذا الكود ينتظر امر من نظام التشغيل, وفى حال حصوله على الامر يقوم باستدعاء Wnd proc الذى تم تحديده من قبل فى هذا الكود:
mov wc.lpfnWndProc, OFFSET WndProc
عندما حددنا محتويات النافذه.
اقتباسو كيف يمكنني التعديل في النافذة أي كيف يمكنني التعديل في الدالة wc
هذا الموضوع شرحته بالتفصيل فى الدروس اخى. إذا كان لديك سؤال محدد بهذا الصدد يكون افضل لان شرح الموضوع يطول, يعنى قلى مثلاً كيف يتم تغير لون خلفيه النافذه, او تغير الايقونه, حتى اتمكن من مساعدتك.
اقتباسinvoke ExitProcess,eaxهل تم التغيير في محتوى السجل فلقد كان في الاول يحتوي على عنوان البرنامج فهل هو يحتوي الان على عنوان اخر بايت في البرنامج
نعم تم تغير محتوى المسجل من قبل نظام التشغيل, فحين تغلق البرنامج بواصطة علامة X فإن نظام التشغيل يرسل الامر null لبرنامجك وبذالك تطلب انت من البرنامج ان ينهى عمله.
اقتباسو ارى ان الوصلة الثانية التي تعالج الاوامر هزيلة فكيف يمكننا تسمينها بالاوامر
لم افهم قصدك اخى.
اقتباسلقد واجهتني مشكلة عند القيام بالكمبايلر للكود وهي لم يفهم هذا البارمترWS_EX_LAYOUTRTL
مما اضطرني بالفيام بالنافذة باللغة الانقليزية...لو كانت بالعربية لكانت اجمل
نعم الامر غير موجود فى windows.inc ماعليه القيام به هو التالى :
اذهب إلى المسار c:\masm32\iclude ستجد ملف اسمه windows.inc قم بفتح الملف فى محرر نصوص واضف الامر التالى :
WS_EX_LAYOUTRTL equ 00400000h
حاول ان تضعه معى WS_EX_ فهناك عده اسطر تبداء بهذا الامر موجوده فى منتصف الملف.
فى الواقع يمكنك ان تضعه فى ارى مكان فى الملف ولكن من الافضل ان تضعه معى الاوامر التى تشبهه, حتى لا يشوه منظر الكتابه.
اقتباسو كيف يمكننا اضافه ملف صوتي للبرنامج
ساشرحها لاحقاً إن شاء الله لضيق الوقت.
والسلام
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.