إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    C++ التعامل مع المكتبات

    مفهوم المكتبات البرمجية

    المكتبة ( Library ) عبارة عن ملف يمكن أن يحتوي على كلاسات و دوال جاهزة بمجرد تضمينها في المشروع تصبح قادر على استخدام كل ما هو موجود فيها و كأنها جزء من المشروع. في العادة عندما يجد المطور نفسه دائماً ما يستخدم نفس الكلاسات و الدوال في مشاريعه يقوم بوضعهم بداخل مكتبة واحدة و كلما احتاج إليها يقوم بتضمينها في مشروعه.

    الآن, عليك معرفة أنه يوجد نوعين من المكتبات التي يمكن تضمينها في المشروع:

    • مكتبات ثابتة ( Static Libraries ) و يكون امتدادها .lib على نظام ويندوز و .a على نظامي لينكس و ماك.
    • مكتبات ديناميكية ( Dynamic Libraries ) و يكون امتدادها .dll على نظام ويندوز و .so على نظامي لينكس و ماك.

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

    الأفضل و الأسهل لك دائماً هو أن تخصص مكان في حاسوبك تضع فيه كل المكتبات التي قد تستخدمها.

    أهمية بناء المشروع أو المكتبة

    من بداية الدورة و حتى الآن كنا نقوم دائماً النقر على الزر Build and run عندما نريد تشغيله و ليس فقط الزر Run, بمعنى آخر كنا نبني المشروع قبل بنائه.

    الصورة التالية تذكرك بأسماء الأزرار التي نستخدمها في برنامج CodeBlocks لبناء و تشغيل المشروع.

    المقصود من بناء المشروع هو قيام المترجم بالتأكد من أن كود المشروع لا يوجد فيه أي مشكلة من ناحية كتابة الأوامر (Syntax Error) و من ثم تحويل كل كود المشروع (Compile) لملف تنفيذي إمتداده .exe.

    المقصود من تشغيل المشروع, هو تشغيل الملف التنفيذي الذي يمثل البرنامج النهائي الناتج عن عملية بناء المشروع فقط.


    الفرق بين الحفظ (Save) و البناء (Build)

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


    نقطة البداية في المكتبة

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

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


    أهمية بناء المكتبة بعد إجراء أي تحديث عليها

    إعادة بناء المكتبة بعد أن تنتهي من كتابة الكود الخاص فيها في كل مرة من خلال النقر على على الزر Build أمر مهم جداً لكي يتم إنتاج نسخة جديدة من المكتبة نوعها .lib أو .a أو .dll أو .so على حسب نوع المكتبة (Static أو Dynamic) و نوع نظام التشغيل الذي تبني المكتبة عليه كما ذكرنا سابقاً.

    الفرق بين المكتبات الثابتة و المكتبات الديناميكية

    من ناحية التعامل مع الكود الموجود في المكتبات سواء كنت تستخدم مكتبة ثابتة أو مكتبة ديناميكية فإنه لا يوجد إي إختلاف من هذه الناحية.

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

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


    معلومة تقنية

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

    هذا الخطأ معناه بكل بساطة أن البرنامج الذي تستخدمه في الأساس يستخدم المكتبة الديناميكية MSVCR71.dll التي تم ذكر إسمها و التي لم يستطع إيجادها.

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

    طريقة إنشاء مكتبة و استخدامها

    في البداية نود الإشارة إلى أننا نستخدم برنامج CodeBlocks في تطبيق الشرح و بالتالي سنشرح كيفية إضافة مكتبات خارجية بواسطته.
    في حال كنت تستخدم برنامج آخر, ستخلتف قليلاً الطريقة التي تقوم فيها بتضمين المكتبة التي تنشئها في المشروع لأن كل برنامج يملك واجهة مختلفة للعمل.

    الآن, بهدف جعل الشرح مبسط لأبعد حدود و يغطي كل المعلومات التي تحتاج معرفتها عند التعامل مع المكتبات, سنقوم بتقسيم المثال لأربع خطوات أساسية:

    1. إنشاء مشروع C++ عادي لأننا سنستخدمه لتجربة المكتبة.

    2. إنشاء مشروع آخر عبار عن المكتبة التي سنقوم بتضمينها في المشروع الأول.

    3. إضافة المكتبة في المشروع و استدعاء الدوال الموجودة فيها.

    4. إعادة التعديل على المكتبة و إضافة ملفات إمتدادها .cpp و .h فيها مع وضع الكود بداخل نطاق ( Namespace ).



    1- خطوات إنشاء مشروع جديد

    هنا وضعنا خطوات إنشاء مشروع C++ في برنامج CodeBlocks لأننا سنستخدمه لاحقاً لتجربة أي مكتبة ننشئها.
    فعلياً سنقوم ببناء مشروع إسمه Test.

    شاهد الخطوات »



    2- خطوات إنشاء مكتبة ثابتة

    هنا وضعنا الخطوات التي يجب إتباعها في برنامج CodeBlocks لإنشاء مكتبة ثابتة و تعريف بعض الدوال فيها و من ثم بنائها.
    فعلياً سنقوم ببناء مشروع إسمه harmash و عند بنائه سنحصل على مكتبة إسمها libharmash.

    شاهد الخطوات »



    3- خطوات تضمين المكتبة في المشروع

    هنا وضعنا الخطوات التي يجب إتباعها لتضمين مكتبة في أي مشروع يتم بناؤه بواسطة برنامج CodeBlocks.
    فعلياً سنقوم بإضافة المكتبة libharmash في المشروع Test. بمعنى آخر سنعلم المترجم بمكان وجود المكتبة harmash التي سنستخدمها في المشروع Test.
    بعدها سنقوم باستدعاء الدوال الموجودة في المكتبة التي تم تضمينها للتأكد من أن ذلك قد تم بنجاح.

    شاهد الخطوات »



    4- خطوات إضافة ملفات هيدر في المكتبة و تضمينها في المشروع

    هنا قمنا بإضافة ملف إسمه Person.h و ملف إسمه Person.cpp في المشروع Harmash.
    بعدها قمنا بتضمين الملف Person.h الموجود في المشروع Harmash في المشروع Test.
    في النهاية قمنا باستخدام الكود الموجود في الملفات التي تم تضمينها للتأكد من ذلك قد تم بنجاح.

    شاهد الخطوات »

    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب