السلام عليكم
عندما تبداء بعمل برنامج فى بيئة الـ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 وسترى ان الدالة تعمل بدون اي مشاكل..
ولنا عودة لمتابعة الموضوع إن شاء الله..
والسلام عليكم