الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار و سؤال

مغلق
بدأه justnow في 27 ديسمبر 2004 · 14 رد · 1,113 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

انا مبتدئ فى هذه اللغة الاكثر من جميلة

فى الايام القليلة الفائته كنت اقراء كتاب عن assembly 16 bits

و التى فهمت انها تعتمد على المقاطعات اعتماد اساسيا, بعد ان اكملت

الكتاب من دون تنفيذ اى برنامج واحد, وجدت كتاب اخر عن assembly 32 bits

هذا الكتاب الاجديد كان شيقا الى درجة لا تقاوم. حيث اننى استطعت ان

اقراء البرنامج الذى يقوم بفتح نافذة بسهولة كبيرة. ربما هذه السهولة كانت نابعة

عن معرفتى السابقة لل API و كيفية تطبيقها بال C. المهم رايت ان الموضوع سالك

جدا.

الان اظن انى قد اعطيتكم فكرة عن موقعى الان من اللغة.

يمكننى ان اطرح السوال (او بالاصح الاسئلة)

1/ هل احتاج الى معرفة قوية ب 16 bits حتى اجيد ال 32 bits? علما بان ال 16 bits هذه

بدت لى مملة بعد ان بدات الكتاب الثانى.

2/الكتاب الثانى 32 bits يستخدم MASM لست متاكد من الاصدارة بالضبط. على حسب معرفتى المتواضعة بهذا المترجم فانه يعطى ما اشبهه انا بالماكرو فى السى. حيث اننى

استطيع ان استعمل if بصورة شبيهة جدا ب السى. ياترى هل هناك assembler يمكن

ان يعطينى مرونة تعادل MASM او تفوقه.

3/ على حسب ظنى ان البرمجة للويندوز تحتاج ال resources كما كان الامر مع السى.

حيث كان محرر ال resources مدمج مع visual C++6.0 . ما هو افضل محرر للنصوص يمكن

ان يتوافق مع ال assembler المعطى فى السوال السابق. (السوال التالى سيكون كيف

يتم ذلك, لكنى الان اؤاجله لعلى اجد الاجابة وحدى)

4/بالنسبة لل texteditor هل لى ان اجد واحد يمكن ان يلون الكلمات الاساسية و يقوم

بالمساعدة اثناء الكتابة بالى طريقة اخرى؟

5/ اثقلت عليكم, و لكن هذا هو الطلب الاخير, هل لى بكتاب عن 32bits بالاسمبلى

ولكم منى جزيل الشكر.

#2

نسيت ان اقول شيء , عندى استفسار بخصوص التوافقية بين 16 bits و 32bits

يعنى هل يمكننى ان اكتب كود 16 بت على 32 بت( اعنى مزج الكودين و استدعاء مقاطعة). و الشئ الاخر هل يمكن ان استعمل 32 بت اسمبلر ل 16بت(يعننى برنامج 16 بت)

#3

السلام عليكم,

أضن أنك اكتشفت الأمور بنفسك وهذه بداية موفقة.

نعم الأسمبلي 32 بت MASM له اعتماد كبير على الماكرويات لتسهيل البرمجة. و MASM 32 بت هو الآن على ما أضن في النسخة الثامنة وإذا كانت عندك أي نسخة أخرى فقد تقوم بالمهمة. وفعلا إذا كانت عندك معرفة ببرمجة الوندوز في لغة س فأضن أنه ستكون لديك الأمور سهلة للبداية في الأسمبلر لأن كلتاهما يعتمدان على API والطريقة متشابهة إلى في الأوامر.

فيما يخص الرسورس : بالفعل إذا كنا نريد برمجة نوافذ وبالطريقة السهلة سنصنع رسورس مستقلة عن البرنامج. وهنا يمكن أن نختار أي برنامج يقوم بهذا. وإذا كان لديك الفجوال س++ مثلا فيمكنك استغلال هذا لصناعة الرسورس وهذا ما أستعمله شخصيا . وهنا ولتفادي أي مشكلة أنصح - وهذه طريقتي - تسجيل الرسورس على شكل RES بدلا من RC وستلاحظ أن الأمور تمشي بطريقة سليمة بدون أي مشاكل.

فيما يخص TextEditor هناك عدة برامج يمكن أن تقوم بتلوين الكود وهي عديدة ولا أتذكر كل أسمائها. كما أن هناك واجهة تشبه بشكل كبير واجهة الفجوال س++ وهي برنامج RadAsm ويمكن استعمالها في في Masm32 .

هل نحتاج معرفة الأسمبلر 16 بت للبداية في 32 بت. هذا سؤال يصعب شيء ما الإجابة عنه لأنهما مترابطان. فيمكن مثلا أن أقول أن في 32 بت فيمكن أن تنسى كليا كل ما يتعلق بالمقاطعات ويمكن أن تبرمج 32 بت بدون أن تكون لديك أي معرفة بهذا. أما فيما يخص التعامل مع الرجسترات والذاكرة والتعليمات في تقريبا نفسها أو أقول أكثر من 90 بالمية هي سواء. فقد نستعمل مثلا في 32 بت الرجسترات Extended وهذا أضن أيضا أنه تسهيل. لكن كما قلت أغلبية الأمور هي سواء. فإذن إذا تعلمنا الكود في 16 بت أو 32 بت فهذا لن يؤثر كثيرا في تعلمنا.

استدعاء المقاطعات الخاصة ب 16 بت في 32 بت ممنوعة . وهذا ليس منع الأسمبلر ولكن منع من البروسسور نفسه وهذا ساري به العمل في جميع اللغات.إذن إذا كنا نريد برمجة 32 بت فعلينا أن ننسى المقاطعات وشأنها إلا إذا كنا فعلا نحتاجها فهنا نلجأ إلى طرق إخرى للتحايل عن النظام واستدعائها ولكن لهذه الأمور يجب أن نخصص موضوعا خاص بها.

أتمنى أني وفقت في الإجابة على كل أسئلتك وأتمنى لك سفرا ممتعا في هذا العالم العجيب.

إلى اللقاء.

#4

و الله الحقيقة لم لكن اتوقع هذا الرد الجميل :)

لكنى مازلت مصرا على ان امطركم بالاسئلة الكثيرة.

بعد ان حصلت على الاسمبلر قمت بعمل اكثر من 10 برامج خفيفة

مثلا برنامج لنافذة, برنامج لصندوق حوار. و هكذا

و لكن الشى الذى يحبطنى هو عدم معرفتى بالتعامل مع المتغيرات بصورة

صحيحة, خصوصا المتغيرات التى تحوى فواصل عشرية. و هذا الشى الذى يمنعنى

من المواصلة فى برامج ذات معنى.

الشئ الثانى. انا حتى الان استطيع ان انجز الاشياء بنفس الطريقة التى

اتعامل بها مع السى. هذا الشئ يطفى بعد البرود على اللغة ذات الادنى مستوى

يعنى بالواضح كده. ان ليس هناك تميز تملكه الاسمبلى على السى على مستوى ال API

لان كلتاهما نفس الشئ.

هل يمكن لاحد ان يحل هذه المشكلة.

هناك جوانب اخرى ارى فيها هذا التميز. اذ اننى كتبت اول برنامج و الذى يعطى MessageBox

و كتبت اخر بالسى. و لاحظت ان الاول(المكتوب بالاسمبلى) حجمه 2.5KB و الثانى 125KB

هذا شئ جميل. لكن لا اظنه يستحق التضحية و النزول الى مستويات دنيا.

و لا الكلام ده ما صحيح. على العموم فى الانتظار :)

#5

السلام عليكم,

للرد على سؤالك الثاني يمكن أن أقول : طبعا هناك وجهتان نظر في هذه القضية. فهناك من يعتبر تشابه اللغتين شيئ إيجابي حيث سيتمكن الكثير من استعمال لغة الأسمبلر والتي تنعت دائما باللغة الصعبة. كما أن هناك وجهة نظر أخرى التي تقول بما أن هناك تشابه فلا داعي لولوج هذه اللغة. وهنا يبقى الحسم على ما أضن في نوعية العمل التي نريد القيام به.

فإذا كنا سنكتفي ببرامج نوافذ مثلا في مستوى عادي فأضن أن برمجتها بلغة س أو بلغة مثل الفجوال باسيك قد تكفي لهذا الغرض لأننا قد لا نحس بفارق الوقت عند تشغيل البرنامج ولا سيما مع سرعة الكمبيوترات الحديثة. ورغم أنه سيكون هناك فرق في طول البرنامج ولكن حتى هذا ليس عائقا اليوم مع كبر سعة الأقراص والذاكرة وما إلى ذلك.

أما الفرق في وقت الإنجاز قد نشعر به إذا كان البرنامج يتطلب حسابات كثيرة ونقل كميات كبيرة من مختلف أجزاء الذاكرة وبعض الأمور الأخرى. وهنا أيضا قد نستعمل لغة أخرى ونكتفي بزيادة كود الأسمبلر في المهمات الكبرى أو نقوم بدمج هذه المهام في مكتبات نبرمجها بالأسمبلر ونستدعيها في لغات أخرى والأمثلة كثيرة من هذا النوع الأخير.

في بعض الأحيان قد نريد الدخول إلى بعض البرمجة التي لا تمكننا منها لغات أخرى أو على الأقل بطريقة مباشرة وهنا أضن أن الأسمبلر يبقى الإختيار الأفضل. وكذلك قد نريد في بعض الأحيان أن نقوم بحماية برنامجنا وهنا أيضا استعمال لغة الأسمبلر قد تعطينا إمكانيات كبيرة في هذا التعامل. هنا فقط بعض الأفكار كما أن تعلم لغة الأسمبلر قد تفيدنا أيضا في زيادة تعلم لغة أخرى . فشخضيا أضن أن بعض المفاهيم يسهل فهمها في الأسمبلر أكثر من لغة أخرى . وشخصيا وكمثال أفهم مفهوم Pointer في الأسمبلر أكثر من فهمه في لغة س مثلا لأن في الأسمبلر بحكم التعامل الكثير مع الذاكرة قد يصبح هذا المفهوم ربما شيئا ملموسا بينما في لغة أخرى قد يبقى دائما كوسيلة للتعامل.

أنا لا أقول أنه يجب البرمجة بالأسمبلر من أجل البرمجة ولكن يبقى عامل الوقت هو مهم أيضا . فقد نربح مثلا وقتا كبيرا في برمجة برنامج معين بلغة أخرى أكثر من الأسمبلر. وهنا إذن يبقى علينا أن نحسب كل هذه الأمور لنختار اللغة المناسبة.

أما السؤال الأول وهو كيفية التعامل مع المعطيات ذات الفواصل . هنا أقول أنه في الأسمبلر عندنا معطيات نعرفها كما تعلم ب DB DW DD وهي التعريفات الأكثر استعمالا ولكن هذه لا تمكننا من استعمال الفواصل. كما أن هناك تعاريف أخرى مثل

REAL4 أو REAL8 أو REAL10 وهي أرقام يمكن أن تتعامل مع 4 8 أو 10 بتات حيث الأولى تعرف ب Single precision floating point الثانية ب Double precision floating point والثالثة ب 10 byte floating point ويمكن أيضا أن نعرفهما كما يلي :

DD DQ DT

وللتعامل مع الأرقام هذه سنتعامل مع FPU أو البروسسور الرياضي . وهنا قد نرجع إلى السؤال السابق لأنه قد نرى أيضا هنا أشياءا تبدو لنا أكثر تعقيدا من مثيلاتها في لغة س مثلا حيث نتعامل مع جميع الأرقام على حد سوى ولا يهمنا ما يقوم به FPU أو غيره. وهنا أيضا أكرر هل نريد التعلم أو مجرد النتيجة.

إلى اللقاء.

#6

اللسلام عليكم ورحمة الله

من خلال هذه المشاركة سوف اضع كل اسئلتى لذلك استحملونى :)

فى الحقيقة قد حلت مشكلة الارقام ذات الفواصل لانى قد وجدت مكتبة مرفقة

مع MASM مكنتنى من التعامل بسهولة معها. فى اعتقادى ان هذا شئ جميل.

و مع بحثى فى ملفات المساعدة التى تتبع MASM وجدت اطنان من الماكرويات

(ليس المكروبات) تساعد على شد قوام اللغة وجعلها اقوى و اسرع من ناحية

التطوير.

حتى الان مازال MASM هو ما يشغل بالى. لكنى اعتبر نفسى شقيا حين قرات

دروس عن ال VxD. الشئ الذى شدانى فى هذه الدروس هو طموح اللعب فى ring0.

اى الفضول. من خلال الامثلة المرفقة مع التمارين على اللنك

http://win32asm.cjb.net/

مررت بهذه المشاكل:-

1/لم اجد الحزمة المناسبة التى ينبغى على اضافتها للاسمبلر.

انا استعمل MS windows XP prof لذا يجب ان تتوافق الحزمة معه.

2/بما انى لا استطيع ترجمة ال VxD فقد حاولت تسجيل Static Vxd File

و ذهبت الى system.ini و كتبت فيه السطر التالى

device=message.vxd

و قمت بوضع الملف message.vxd فى المسار التالى

c:\windows\system\

و عملت restart.

و كانت الطريقة التى اجرب بها الvxd ان افتح ال DOS و عندها سيتم

اشاء VM جديدة و تحمل ال message.vxd و لكن للاسف لم تنجح الطريقة.

يمكن ان تجد الملف message.vxd على الموقع مضاف الى التمارين.

استميحكم العذر على عناء الرد على اسئلتى. لكن :o

#7

السلام عليكم,

أولا أريد أن أقول أن في الرابط الذي أعطيت لم أشاهد ما تكلمت عليه وأضن أنك تتكلم عن الأمثلة لبرامج VXD للسيد Iczelcion وإذا كان كذلك فليس من الغريب أن لا تشتغل عندك لأن تلك الأمثلة تشتغل فقط على الوندوز 98 أو 95 وبما أنك تستعمل الإكس بي فهذا هو الأمر أولا زيادة إذا كان VXD من نوع Dynamic فهنا من الأحسن تحميله ديناميكيا حتى لا نسقط في نوع من الفخ إذا كان خطء ما ببرنامجنا ولا سيما إذا كنا نختار التحميل بواسطة الرجستري.

للقيام بنوع من تلك البرامج يجب أن تشتغل على الوندوز 98 وأن تكون لديك حزمة DDK98 ومنذ وقت قمت بتحميلها وكانت موجودة في عدة مواقع وأنصح أن تثابر في البحث فغالبا ما تحصل عليها وجرب كذلك برامج أقتسام البرامج مثل الدونكي أو غيره. كان بودي أن أضع الحزمة هنا ولكنها طويلة شيئا ما حوالي 20 ميغا إذا كنت لا زلت أتذكر. وكما هناك الحزمات الخاصة بكل أنواع الوندوز وفيما يخص الوندوز من أنواع NT يجب اختيار طريقة أخرى خلف VXD مثل برامج SYS أو WDM وبما أنني لا زلت أشتغل على 98 فلم أجرب بعد هذا النوع الأخير من البرامج وأكتفي فقط بنوع VXD .

كما قلت مسبقا فإن MASM يعتمد كثيرا على الماكرويات وحتى في برمجة VXD هناك العديد من الماكرويات تسهل هذا النوع من البرمجة وستترك المبرمج يهتم فقط بما يريد برمجته ولا يهتم كثيرا بالبقية مثل الشكل والإفنتس وغيرها وستلاحظ أنه بعد بضع أمثلة ستبقى تفكر في أشياء عدة لم تخطر على بالك من قبل.

من جهتي سأحاول البحث مرة أخرى عن الحزمة وسأوافيك بكل جديد.

إلى اللقاء.

#8

السلام عليكم

لا استطيع ان اشكر الاخ chik بمزيج من الكلمات و لكن استطيع ان اضع المزيد من الاسئلة :)

من ما قرات فى الرد الاخير, فهمت ان هناك خياران. اولهما ان ابحث عن

DDK تخص ال NT systems و ابداء البرمجة عليها, و يستحسن فى هذا الخيار ان استعمل

Dynamic VxD. اما الخيار الثانى (و الذى يبدو لى اننى لم استوعبه بصورة جيدة) ان هناك نوعية اخرى من الملفات التى تحل (او تناظر) ال VxD (اى تمكننى من ان اعلو ل ring0)

فى الحقيقة هناك شئ يجب ان اذكره. لماذا اريد ring0؟

انا معجب بالبرامج التى تحاكى الهاردوير مثل CloneCD الذى يضيف Virtual Clone Drive

و الذى نعامله و كانه DVD-Rom هذا كل ما فى الامر. و هذا هو السبب الذى جعلنى اميل

الى الاسمبلى.

عندما سمعت ب ال Vxd Programming ظننت ان الطريق قد وضحت بالنسبة لى. و ان الامور سلكت. لكن بعد هذه العثرات التى تمنع المسير, لابد لى ان اكمل

الطريق و اجد ال DDK و الطريقة المناسبة (هذا اذا لجات الى الخيار الاول).

اما اذا غيرت رايى( غيرت رايى الظروف) سالجا الى خيار اخر (و اتمنى ان يحقق ما اريد)

اذ اننى فى الحقيقة لا اعرف الاستخدامات البرمجية لنوعية الملفات التالية( SYS أو WDM )

ارجو التوضيح

#9

السلام عليكم,

ربما وقع شيء من الخلط حسب ما فهمت من كلامك الأخير.

إذا كنت تريد حزمة DDK فمن الأحسن أن تحمل الحزمة الخاصة التي تريد التعامل معها فإذا كنت تريد الشغل على XP فإن هناك حزمة خاصة ب XP وأخرى ل 2000 وأخرى ل Milenium وإخرى ل 98 وأخرى ل NT . إذن كما تلاحظ هناك حزمة لكل نظام ويجب تحمبا الحزمة للنظام الذي نشتغل فيه.

وحين تكلمت عن VXD سواءا كان ديناميكيا أو ستاتيكيا فكنت أتكلم عن نظام 98 فقط. وفيما يخص الأنظمة الأخرى فأنا شخصيا لم أجرب هذا النوع من البرمجة في الأنظمة الأخرى. فهي تعتمد على نضام مختلف ومغاير ل 98. وهنا حسب التجربة وإذا كنت تعرف دوال الحلقة 0 فيمكن أن تبرمج بدون أن تكون لديك DDK وهنا يجب أن تكون تعرف أرقام Services وأنا أتوفر على ملف يعطي هذه التطابقات بين الدوال وأرقامها وإذا كان يهمك سأضعه هنا.

دائما في 98 قلت أن هناك بعض الطرق الأخرى التي تمكننا من المرور إلى الحلقة 0 وهي كالتالي. بما أن المقاطعات تشتغل في الحلقة 0 فيكفي إذن أن نغير مسرى مقاطعة ما ونحولها إلى كود خاص بنا ونحن متيقنين أن هذا الكود سيشتغل في الحلقة 0 . وغالب المبرمجين يغيرون المقاطعة 5 ولكن هذا ليس ملزما .

إلى اللقاء.

#10

مشكور الاخ chik

الحقيقة لقد اعجبتنى فكرة تجاوز المقاطعات هذه( هذا اذا كنت قد فهمت ما ترمى اليه). ساوضح لك ما فهمت.

يمكننا ان نربط كود فى البرنامج باستدعاء مقاطعة معينة, يعنى اى برنامج او process شغالة تنادى هذه المقاطعة ينادى الكود الذى كتبته انا. هذا اشبه بال Hook.

لكن هذا الشئ يبدو مفيدا اذا اردت الخربطة بالنظام (مفيد الى حد بعيد). ياريت تدلنى

على الطريقة التى يمكننى ان انجز بها ذلك.

لكنى ما زلت مصر على ان اساخدم ال VxD لانى قد وجدها (ضالتى) و احتاج

بشدة الى ال DDK تبع ال XP لانى لا اريد ان اطور برنامج يعمل على 98. اما فكرة استدعاء

ال services التى تمنحها ال VxD الاخر المحملة على النظام فهى على حد علمى عملية

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

الشيئ الذى جعلنى معلق ب ال VxD هو امكانية اضافة Hardware وهمى هو فى الحقيقة الا Software و هذا ما اريده كما وضحت لك فى CloneCD

ليس لى اكثر من ان اقول شكرا على التجاوب :)

#11

السلام عليكم,

أريد أن أضيق بعض التوضيحات :

اقتباس
يمكننا ان نربط كود فى البرنامج باستدعاء مقاطعة معينة, يعنى اى برنامج او process شغالة تنادى هذه المقاطعة ينادى الكود الذى كتبته انا. هذا اشبه بال Hook.

كما دكرت يمكن أن نعمل هوك لأي مقاطعة ولكن هدا لا يفيدنا في هدا الأمر. وكدلك لأننا سنشتغل في النظام المحروس والبرامج عادة لا تهتم بالمقاطعات.

ولكن شغل المرور إلى الحلقة 0 بواسطة هده الطريقة يشبه عمل هوك للمقاطعات لكن لا ننتظر أن يستدعي المقاطعة برنامج آخر بل سنستدعيها بعد الهوك نحن في برنامجنا وهدا ما سيفتح لنا باب الحلقة 0 . كان بودي أن أكتب لك مثالا عن هدا لكن في هده الأوقات لا أجد الوقت الكافي للجلوس أمام كمبيوتري وربما بعد العيد إن شاء الله أتمكن من دلك إدا تمت انشغالاتي بخير إن شاء الله.

والطريقة كما يلي وكما قلت مسبقا هي تشتغل على 98 فقط :

- نقرأ IDT أو ما يعرف ب Interrupt Descriptor Table .

- نخزن المقاطعة الأصلية التي نريد تغييرها.

- نغير عنوان المقاطعة للكود الدي نريده - حتى هنا نحن نعمل مثل الهوك Hook -

- بعد هدا نستدعي المقاطعة التي غيرناها - لا نقوم بهدا ضروريا في الهوك - وهكدا سيصبح الكود الدي كتبناه للمقاطعة يشتغل في الحلقة 0 وهنا يجب الإحتياط لأن البرمجة هنا ستتغير نوعا ما ويجب أن لا ننسى أننا في الحلقة 0 - هدا لأننا قد نسهى عند البرمجة وبعض المرات نبرمج كالمألوف ولكن سرعان ما نعرف دلك عند الإنجاز حيث يجب إعادة تشغيل الكمبيوتر لأننا سنوقفه بأخطائنا -

- بعد ما ننتهي نرجع المقاطعة إلى ما كانت عليه - وهنا أيضا بعض الفرق مع الهوك -

فيما يخص حزمة XP-DDK فهي موجودة وقد عملت بعض البحث في إدونكي وعلى ما يبدو موجودة وإنما هي أكبر من سابقاتها . وكما قلت مسبقا لم يسبق لي أن قمت بالبرمجة في هدا النظام ولهدا تبقى معلوماتي هنا مجرد نظرية خلف 98 .وكما يمكنك أن تستعمل Numega Driver Studio وهو برنامج يساعد إلى حد كبير برمجة الدرايفرات بلغة س أو س++ . وإدا كنت تهتم ببرمجة الدرايفرات بالأسمبلر على 98 يمكن أن نتطرق إلى دلك بعد العيد إن شاء الله.

اقتباس
اما فكرة استدعاء

ال services التى تمنحها ال VxD الاخر المحملة على النظام فهى على حد علمى عملية

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

يا أخي حين تدخل برمجة الدرايفرات فلا بد أن تتعامل مع Services فمجمل الدوال التي في DDK هي تستدعي سرفسات من درايفرات أخرى. كل ما في الأمر أننا حين نستدعي دالة معينة سنكتبها باسمها وهدا سيكون شيئ سهل للتعرف عليها ولكن الكمبايلر سيحولها إلى مقاطعة لإستدعاء درايقر معين وسرقيس معين. ولهدا إدا لم يكن عندنا هدا الكمبايلر الموجود في DDK يكفي أن نستدعي الدالة باستعمال المقاطعة وليس استدعائها باسمها وسنقوم يدويا بما سيقوم به الكمبايلر . وهكدا فالعملية ليست بهدا التعقيد قكمثال يمكن أن نستدعي مثلا الدالة CreateFile مثلا أو نستدعي مقابلها في الدوس ب int 21 فالنتيجة سوية ولكن الكتابة مختلفة.

إلى اللقاء.

#12

لقد قمت بتحميل المكتبة

و كانت الملفات التى حملتها كلاتى

GTK+ Development Environment

GTK+ Runtime Environment

GTK+ Source Code

بعد ان علمت setup للاول و الثانى

وقفت (كما وقف حمار الشيخ على العقبة)

لم اعرف حتى كيف اترجم البرنامج لانى لم اجد شئ يثير الانتباه

اريد المساعدة فى كتابة برنامج يعمل Hellow World

حتى اخد فكرة عن البيئة قليلا.

اما الكتاب المرفق, لم اجد فيه طريقة العمل على المكتبة

(h)

#13

يبدو اننى لخبطت

فهذه الرد كان مخصص لموضوع اخر

ارجو من المشرفين حذفه و حذف هذا

#14

السلام عليكم,

هو بالفعل على ما يبدو هناك لخبطة . فلا علاقة ل GTK ب DDK .

لإلى اللقاء.

#15

فى الانتظار لمثال صغير

هذا الموضوع مغلق.

مواضيع مشابهة