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

هل بالامكان تحويل البرنامج من لغة الى أخرى !؟

بدأه مبرمجة-123 في 16 أبريل 2008 · 18 رد · 1,528 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أتمنى ان الجميع يكونون بخير

عندي استفسارين واتمنى القى جواب عندكم ...

1- هل بالامكان تحويل كود من لغة الى اخرى ؟

مثلا تحويل برنامج من لغة السي الى الفيجيوال بيسك او العكس ؟

2- لغة السي من ضمن Visual Studio فهل لها انترفيس !؟

لاني لااعرف الا التعامل مع الشاشة السوداء ...

شكرا لكم ...

#2
اقتباس
1- هل بالامكان تحويل كود من لغة الى اخرى ؟

مثلا تحويل برنامج من لغة السي الى الفيجيوال بيسك او العكس ؟

لكل لغة تعاليمها وجملها الخاصة , وكلماتها المحجوزة , وطريقة في كتابة اكوادها .

اقتباس
لغة السي من ضمن Visual Studio فهل لها انترفيس !؟

لاني لااعرف الا التعامل مع الشاشة السوداء ...

نظام ويندوز نفسه مصمم بلغة سي !!

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#3

شكرا على الرد

1- لكني سمعت ان في برنامج يحول من لغة الى أخرى ، بس مااني متاكدة وأحس هالشئ صعب يتسوى ، فقلت أسال اتاكد

2- ممكن مساعدة لو كنت حابة اتعلم كيف اعمل انترفيس؟

شكرا مرررة أخرى ..

#4

السلام عليكم

1- يمكن عمل ذلك يدويا اذا كنت ملم بجوانب اللغتين ولا اعتقد انه توجد ادوات لذلك !

2- يمكن استخدام مكتبات مثل MFC او Qt لعمل واجهة رسومية , او استخدام Win32 API مباشرة لعمل ذلك (والتي تستخدمها المكتبات السابقة بصورة غير مباشرة) !

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#5
اقتباس
1- هل بالامكان تحويل كود من لغة الى اخرى ؟

طبعا، مثال حي تحويل لعبة من C الى دلفي

/index.php?showtopic=150162

مثال اخر والعكس تحويل من دلفي الى C

/index.php?showtopic=105908

ولو بحثت في قسم لغة التجميه تجد بموضوع اكثر من مثال تحويل من C الى لغة التجميع Assembly

نظريا يمكن التحويل من اي لغة الى اخرى

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

d4baa0.gif
#6

شكرا لك على الاجابة ...

الذي فهمته انه لايوجد برنامج لعمل هذا التحويل ،،

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

* البرنامج كبير شوي واواجه مشاكل في التحويل ،، انا جالسة اعمل عالبرنامج من فترة والى الان ماتوصلت الى النهاية :(

مع كثرة الأخطاء التي تظهر :(

*وليس لدي فكرة كيف ممكن اعمل الانترفيس لبرنامج السي :(

الله ييسر امورنا ... هل من نصيحة ؟

:(

#7
اقتباس
لكني سمعت ان في برنامج يحول من لغة الى أخرى ، بس مااني متاكدة وأحس هالشئ صعب يتسوى ، فقلت أسال اتاكد

بالنسبة لبرنامج يحول من لغة إلى اخرى , ليس بالمستحيل لكني لم اسمع بهذا من قبل .

اما عن التحويل طبيعي ممكن , كل لغة لها خاصية " برمجة " تستطيع ان تقوم بما تقوم به اللغات الاخرى , وتبقى الكفآة محل الاختلاف ,

يعني في مقرر خورازميات , لو تقارني المقرر مع لغات البرمجة جميعها تجدي تشابه في الكيفية واختلاف في الصيغة

يعني لو حبينا نقارن بين البيسك والسي , سنجد ان جميعها تحتوي على جمل تحكم ( جمل اختبار - جمل تكرار ) لكن الاختلاف فقط في الصيغة

اقتباس
ممكن مساعدة لو كنت حابة اتعلم كيف اعمل انترفيس؟

راح اقول نفس كلام الاخ GamingMaster

اقتباس
يمكن استخدام مكتبات مثل MFC او Qt لعمل واجهة رسومية , او استخدام Win32 API مباشرة لعمل ذلك (والتي تستخدمها المكتبات السابقة بصورة غير مباشرة) !

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

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#8

ما فهمته من كلامك ان الغرض من هذا كله هو عمل واجهة للبرنامج ولذلك تريدين تحويله الى VB , صحيح ؟

طبعا الاسهل هو تصميم الواجهة وليس تحويل الكود الى لغة اخرى :haha: ...

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#9

شخصيا انصح بتعلم مكتبة رسومية مثل Qt او Gtk+ او MFC او..

صحيح ان الموضوع يحتاج جهد ووقت الا انها معرفة تنفع في المستقبل..

الخيل والليل والبيداء تعرفني ::: والثور والبغل والاغنام والبقرُ

#10
اقتباس
يمكن استخدام مكتبات مثل MFC او Qt لعمل واجهة رسومية , او استخدام Win32 API مباشرة لعمل ذلك (والتي تستخدمها المكتبات السابقة بصورة غير مباشرة) !

يعني اعمل الانترفيس من نفس البرنامج ؟

طيب احتاج مساعدة ؟ يعني انا عندي الكود ... كيف اصمم الانترفيس بحيث يكونون مترابطين مع بعض؟

مالي خبره بال MFC ولا Qt (ببدا اقرا عنهم ) واتمنى تساعدوني :(

#11

خبرتي تقتصر على Qt فقط.. تعلمها ليس صعبا ولكنها كالبرمجة بشكل عام تحتاج الى تدرب وتعلم وتجريب..

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

غالبا ستحتاجين الى اعادة ترتيب البرنامج ليسهل العمل مع الواجهة حسب مقاييس Qt الا انه توجد ايضا طرق للابواب الخلفية تساعدك على انشاء واجهات "على الطاير" بدون حاجة الى تعديلات كبيرة على البرنامج..

اهم شيء هو ان هذه المكتبة كلها classes واذا كنت تستطيعين التعامل معها فستستطيعي التعامل مع هذه المكتبة

واذا احتجتي اية مساعدة فالمنتدى مفتوح للجميع ونساعد قدر المستطاع

الخيل والليل والبيداء تعرفني ::: والثور والبغل والاغنام والبقرُ

#12

مررة اخرى شكرا لكم على ردودكم ...

مشكلتي اني أعرف للسي ككتابة برنامج (ولم اجرب استخدام اي انترفيس من قبل) فقط اعمل على الشاشة السودا

اقتباس
عند ضغط زر تستعى هذه الدالة التي بدورها تربطيها بالكود الى عنصر اخر او دالة اخرى

هذا مااقوم به في الفيجيوال بيسك vb.6 ،،، ولكن لم اتعود على كتابة برامج كبيرة بهذه اللغة :(

اقتباس
اهم شيء هو ان هذه المكتبة كلها classes

لم احبذ الكتابة بال سي++ من اجل classes :(

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

هذا مااريده ... هنا أحتاج المساعدة :) لو سمحت

#13

مع Qt لا مجال للهروب من الـ classes..

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

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

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

الخيل والليل والبيداء تعرفني ::: والثور والبغل والاغنام والبقرُ

#14

طيب كيف ممكن اتعلم الشئ اللي يفيدني لاكمال هذا البرنامج ؟ على الطاير :)

الكود جاهز ويعمل ولكن باقي عمل الانترفيس :(

#15

اولا "افترض ان لديك خلفية عن البرمجة الكائنية"

ثانيا توجهي الى موقع Qt وحاولي فهم الامثلة من 1 الى 14 "يعني كلهم" وطبقيهم

ثم القي نظرة على الكائنات المتوفرة في المكتبة (قرابة 500 كائن :) )

واخيرا ابداي بالتفكير بكيفية دمج هذه الكائنات في البرنامج.

- مقاييس Qt تقول ان البرنامج نفسه هو كلاس من هذه المكتبة وبداخلها كلاسات اخرى والكود الفعلي الذي كتبتيه يكون موزع بين الكلاسات هذه حسب مكان حاجته.. هذا الكلام يحتاج الى عملية اعادة ترتيب واعادة كتابة كبيرة في حالة ان البرنامج كامل ولكن بدون واجهة رسومية..

للبرمجة على الطاير: تضعي برنامجك في كلاس عادي وتصنعي بجواره او بداخله كلاس رسومي وياخذ هذا الكلاس الرسومي البيانات التي يحتاجها من الكلاس البرمجي..

وهذه الروابط:

الامثلة:

http://doc.trolltech.com/4.3/tutorial.html

الكلاسات المتوفرة:

http://doc.trolltech.com/4.3/classes.html

وللتحميل:

http://trolltech.com/downloads/opensource

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

الخيل والليل والبيداء تعرفني ::: والثور والبغل والاغنام والبقرُ

#16

في الحقيقة أسهل طريقة لعمل واجهة على الطاير و بشكل قريب جدا من VB هو استخدام الـCodeGear

لا classes ولا نصف كود حتى تقوم بكتابته , فقط صمم الواجهة كما تفعل في VB بالضبط او دلفي ثم نقرتين على button مثلا وسيقوم تلقائيا بعمل اجراء خاص عند النقر على هذا الزر ويمكنك اضافة الكود داخل هذا الاجراء بالضبط كما تفعل في دلفي او vb .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#17
اقتباس
لعمل واجهة على الطاير

(y)

---------------------------

من خلال ماقرات قبل قليل ... ال CodeGear دائما مرتبطة بالدلفي

الرجاء التوضيح !؟

==>>آسفة على الازعاج

#18

نفس الشركة المطورة لذلك يوجد تشابه شديد في الواجهة و دوال المكتبات !

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#19

جزاكـم الله خيرا .

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

شكرا لكم ...

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…