Intro to Win32 API C++ : Real Story - اصل الحكاية
3 minute read
مقدمة لدخول برمجة الواجهات الرسومية بلغة السي ++ Win32 API
انتهينا من النقاش حول ان لغة السي تبرمج الواجهات ام لا فنحن الان نتحدث عن تقنية معقدة ولا تحتمل الدخول في نقاشات حول مميزات وعيوب لغات البرمجة اترك هذا جانبا لانك لن تتزوج اللغة فلا تقلق اِن مسها بعض المتعصبين قليلي الفهم بسوء حتي نكمل مسيرتنا في البناء والتطوير والابتعاد عن الرجعية والتخلف.
كما ذكرت عزيزي القارئ ان التقنية معقدة ولكن بشكل نسبي ولكن بفهمها النظري والعملي سوف تراها ابسط.
هذه التقنية مقدمة من شركة ميكروسوفت لكي تكن قادر علي برمجة الواجهات الرسومية من خلال المكونات الخاصة بالويندوز لذلك يُطرح في ازهاننا سؤال ما هي الفكرة الرئيسية من جعلك تستخدم مكونات الويندوز في برمجة الواجهات؟
لا تقلق فان هذا السؤال محور حديثنا اليوم.
ما الفائدة من استخدام تقنية win32 API
يوجد ثلاث مميزات وخاصتاّ اذا كنت من مطورين الالعاب.
الميزة الاولي: تستطيع التحكم مباشرة بـ windows kernel وهذا يعطيك اكثر حرية في تشكيل المكونات الخاصة بك او تخصيص شكل البرامج التي تقوم بصنعها وايضا الوظيفة اكثر فاعلية.
الميزة الثانية: اذا كنت من المهتمين بسرعة اداء البرامج؛ بلاضافة الي سرعة تنفيذ لغة السي ++ هنا الامر اكثر فاعلية فيمكنك ان تستخدم المكونات الرئيسية بدون وسيط او مجموعة كبيرة من الاكواد التي تفرض عليك قيود والتي بدورها تقليل الكود والاخطاء ولكنها للأسف تقلل السرعة ايضا لذلك سرعة البرامج التي ستبنيها ستتضاعف لانك متصل مباشرة بالويندوز.
الميزة الثالثة : وهي مترتبة علي المميزات السابقة بما انك تستخدم الكرنل والجرافك الخاص بالنظام سيعطيك المرونة في بناء الالعاب و باستخدام الي تقنية DirectX3d ومكاتب openGL سيجعل وظائف الجارفك اكثر فاعلية.
هناك ميزة اخري لا يلتلفت اليها احد للأسف مع انها اهم ميزة وهي معرفتك لمكانيكية عمل برامج الواجهات الرسومية و بماذا مرت من مراحل لكي تظهر أمامك وانك تسطيع ان تكشف كل ما وراء الكواليس وهذا يعطيك خبرة كبيرة فيما بعد لإستخدامك لتقنيات مطورة علي هذه المنصة او منصات اخري فإن المنهجية لا تتغير بشكل كبير وهذه الخبرة ايضا تحتاجها الشركات الكبيرة بان تتوافر بالمبرمج الموظف لديها.
عيوب تقنية Win API
لكل تقنية ما يجعلها سيئة نوعا ما لبعض المبرمجين الذين يريدون كتابة القليل من الاكواد لعمل الكثير من البرامج , نعم فان هذه الواجه البرمجية تتكلف الكثير من الاكواد التي تقوم بكتابتها لكي تستطيع انشاء واجه بسيطة لذلك فانه يوجد الكثير من المبرمجين يرونها انها تقنية ليس لها اي فائدة وتضيع من وقتهم في التعلم والشغل ولكن هذا لو كنت مبرمج ليس له احتياج للبرمجة إلا ان تقوم باستخدام بعض المكونات الجاهزة والتي يبني بها بعض التطبيقات الصغيرة والتي تتمثل في تطبيقات المتاجر والمخازن او انظمة ادارة موظفين الشركات او بعض البرامج الاخري من هذه الانواع التي لا تحتاج اكثر من مكاتب للواجهات ومكاتب للاتصال بالشبكة ومكاتب الاتصال بقواعد البيانات او الملفات الشبيهه. لذلك فان هذه التقنية تمثل لهم عذاب اذا حاولوا ان يصنعوا بها برنامج تجاري صغير او انظمة لبعض الشركات.اما بالنسبة للاخطاء والامان فانها لا تقوم بمعالجة جميع الاخطاء الا الاخطاء التي يمكن ان تتسبب بكارثة مثلا في الذاكرة او الانظمة الداخلية وانما لا تسطيع معالجة الاخطاء التي تقوم بعمل hang للنظام الا بعض الانظمة الحديثة ولكن تتوقف اكثر علي براعة المبرمج وايضا مشكلة الـ security فانها مصيبة لانك تستطيع ان تقوم باتصال مباشر بـ kernel مع انك تستخدم API ولكن هذا لا يمنعك بشكل كافي في ان تقوم باعطاء برامجك صلاحيات كثيرة والتي توفرها لك API ايضا.
اذا ما هي قصة win32 وما الفرق بين .win16
الفرق بين win32 و win16
القصة: في الاصل كان الويندوز قادرا علي معالجة جرافك 16bit لبرامج التي تعملعلي ms-dos
وعندما بدأ تطورالتقنيات اصبح هناك احتياج الي القدرة علي محاكات عملية معالجة البرامج 32bit واصبح اخير 32 بعد ظهور
windows NT و ًWindows 2000 خصوصا ان ميكرو سوفت تخلصت من المكونات المبنية علي dos وتم تنفيذه بشكل منفصل وكامل نهائيا في ويندوز 2000 واضيفت له الكثير من المميزات المتقدمة.
حيث قاد واجهة التطبيقات البرمجية (API) التي تحتوي علي اّلاف من الدوال الخاصة باالواجهات الرسومية والذي اعتمد بشكل كبير علي NT Kernel بدلا من ms-dos subsystem بالتاكيد بما ان NT Kernel قادرة علي محاكات الـ functionality الضرورية لدي Dos .
وبالاضافة الي ذلك قامت ميكرسوفت بتقديم الكثير من الـ APIs مثل (MFC , COM , .NET )
Post a Comment