بعض خبايا كمبايلر VC++ نقطة بداية البرنامج ++

الناقل : elmasry | الكاتب الأصلى : احمد غريب | المصدر : www.arabteam2000-forum.com

السلام عليكم

عندما تبداء بعمل برنامج فى بيئة الـVisual c++ فإنك تختار نوع المشروع اولاً وربما اشهر هذه المشاريع هى الـwin32 console والـwin32 application..

هل تعلم ان الفرق ليس كبير لهذه الدرجة..

سؤال: لو اخترت مثلاً مشروع فارغ من نوع win32 console ثم اكتشفت انك فى الواقع تريد القيام بعمل مشروع win32 application كيف تصحح الخطاء؟؟

فى لغة الاسمبلى المسئله بسيطة فنحن لا نختار نوع مشروع حتى نصل إلى مرحلة الـlink, وفى حالة اردنا القيام بعمل مشروع وندوز نقوم بإضافة الامر التالي لسطر الـlink

/subsystem:windows


وفى حالة برنامج الـconsole نضيف الامر التالى
/subsystem:console


والامر لا يختلف فى بيئه الـvisual c++ فكل ما عليك عمله هو الذهاب إلى

project->settings->Link

وتغير الامر /subsystem:console إلى الامر /subsystem:windows..
هذا هو الفرق الوحيد بين الاختيارين وليس هناك اى فارق اخر..
_______________________________________________________________

نقطة بداية البرنامج :

كلنا يعرف ان نقطة بداية برامج الوندوز تسمى main فى حالة الـconsole و WinMain فى حالة برامج الوندوز, هذا طبعاً فى حالة إستخدام الVisual c++ ولكن من الذى يحدد هذه المسميات وهل هناك مسميات اخرى ؟؟

فى بيئة الـvisual c++ هناك ملف إسمة CRt0.c هو الذى يحدد هذه المسميات, ويوجد فى نفس الملف دالتين غير المذكورة اعلاه وهى wmain بالنسبة للـconsole واخرى wWinMain بالنسبة للwin32 Application والفرق هو انك تستطيع تمرير parameter من نوع unicode لبرنامجك من خلال إستخدمها, بدل من الدوال main و WinMain. جرب ان تستخدم الدالة wWinMain بدل WinMain وسترى ان الدالة تعمل بدون اي مشاكل..

ولنا عودة لمتابعة الموضوع إن شاء الله..

والسلام عليكم