الدرس الأول من البرمجة في بيئة الويندوز - Intro to Win32 programming in C++

تم تحميل الصفحة في 1,6261241 ثانية
الدرس الأول من البرمجة في بيئة الويندوز - Intro to Win32 programming in C++

alnesralthahabi

موقوف لمخالفة الشروط
rank
إنضم
6 مارس 2019
المشاركات
4
الإعجابات
0
النقاط
1
العمر
38
الإقامة
سوريا.لوكسمبورغ





اللهم لك الحمد حمدًا طيّبًا كثيرًا مُباركًا فيه؛
ملء السّماوات وملء الأرض وما بينهما، وملء ما شيئت من شيء بعدهما.


*. أرحب بكم إخواني وأخواتي أعضاء منتدى نقطة التطوير .*

*. أتمنى أن تكونوا في تمام الصحة والعافية.*



الدرس الاول من البرمجه في بيئه الويندوز - Intro to Win32 programming in C++

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


اولا يجب ان نفهم معنى API حتى نعرف مع ماذا نتعامل
API تأتي مع المكتبات البرمجية وتأتي في المسميات وإذا بحثت عن معناها فستجد أنها إختصار لـ Application Programming Interface أي بالعربي (واجهة برمجة التطبيقات)

ولكن هذه الترجمة ترجمة عقيمة أي بمعنى أخر هي ترجمة حرفية فقط و هي لا تظهر حقيقة معنى API ...

عندما تبحث في المواقع الكبيرة وفي المشاريع البرمجية تمر عليك أشياء غريبة تحتوي على كلمة API فمثلاً تجد قواعد بيانات MySQL كاتبين مثلاً MySQL API و تجد Windows كاتبين Win32 API وتجد مثلاً موقع كاتبلك مثلاً My API وهكذا ...

طيب مامعنى هذا الكلام ؟

قبل أن نجيب على هذا التساؤل يجب أن نعرف أولاً مامعنى API ؟

إذا ً مامعنى API ؟

حرفياً هو كما ذكرنا بالأعلى ...

أما من حيث المفهوم فسأشرحها بمثال :

API هي عبارة عن (غلاف) لتغليف شئ صعب من الداخل وجعله سهل من الخارج

وهذا كمفهوم ولكن كيف يطبق في البرمجة
في حقيقة الأمر لو قال لك أحدهم أكتب لي برنامج يقوم بتحريك رأس الهارديسك


فسيكون جوابك هو (يانهار ازرق)

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

هذا الكلام النظري أما بالنسبة للناحية البرمجية فـ API هي مجموعة من الدوال الخدمية والتي تساعد في تبسيط شئ معقد وصعب



قبل ان نبداء بلتعلم هناك بعض الاشياء اللتي يجب شرحها
اولا عند تعلمك WinAPI سوف تقراءة معرفات غير مئلوفه مثل DWORD_PTR and LPRECT وايضا متغيرات باسماء غريبه مثل hWnd and pwsz
في الحقيقه هذه تسمى (Hungarian notation)



Typedefs - المتغيرات في بيئة ويندز تختلف عن السي بلس بلس نوعا ما لكنها مشابه


متغيرات الانتيجر - Integer




كما تلاحظ لا يوجد int او float لكن هناك نفس المتغيرات باسماء مختلفه لهذا لاتقلت لان المسئله مجرد التعرف على المتغيرات والاسماء


Boolean Type



ايضا المتغير BOOL يختلف عن bool في السي بلس بلس
الحروف الكبيره هيه للويندوز والصغيره للسي بلس بلس وسوف نعرف الفرق في الدروس القادمة


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


Pointer Types

المؤشرات تبداء بـ P- or LP-

امثله


C++:
RECT*  rect;  // Pointer to a RECT structure.
LPRECT rect;  // The same
PRECT  rect;  // Also the same.
P تعني Pointer
LP تعني "long pointer



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

Working with Strings


في البداية كان النظام بدائي نوعا ما ولا يدعم جميع حروف العالم ويسمى ANSI وهوه 8-bit
ثم اتى نظام جديد يسمى Unicode ويجمع جميع حروف العالم حتى الرموز وهوه UTF-16


لهذا سوف تجد char_t و wchar_t
W تعني Wide وهيه لـ Unicode



مثال

C++:
typedef wchar_t WCHAR;
وهذا مثال لتعريف المتغيرات

C++:
wchar_t a = L'a';
wchar_t *str = L"hello";

هذه صوره لبقية المتغيرات من نوع STRING




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

Unicode and ANSI Functions

كل فونكشن لديه نوعان

  • SetWindowTextA takes an ANSI string.
  • SetWindowTextW takes a Unicode string.
كما تلاحظ في نهايه الفونكشن الثاني يوجد W وهذا يعني يدعم الحروف العالمية







(بعض الاشياء منقوله لتسهيل الشرح وقله وقت الكتابه)


جميع الحقوق محفوظه لنقطة التطوير
All rights reserved



*. [ ~ .. في أمان الله .. ~ ] .*


*. [ ~ .. Mariio.. ~ ] .*
 

alnesralthahabi

موقوف لمخالفة الشروط
rank
إنضم
6 مارس 2019
المشاركات
4
الإعجابات
0
النقاط
1
العمر
38
الإقامة
سوريا.لوكسمبورغ





اللهم لك الحمد حمدًا طيّبًا كثيرًا مُباركًا فيه؛
ملء السّماوات وملء الأرض وما بينهما، وملء ما شيئت من شيء بعدهما.


*. أرحب بكم إخواني وأخواتي أعضاء منتدى نقطة التطوير .*

*. أتمنى أن تكونوا في تمام الصحة والعافية.*



الدرس الاول من البرمجه في بيئه الويندوز - Intro to Win32 programming in C++

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


اولا يجب ان نفهم معنى API حتى نعرف مع ماذا نتعامل
API تأتي مع المكتبات البرمجية وتأتي في المسميات وإذا بحثت عن معناها فستجد أنها إختصار لـ Application Programming Interface أي بالعربي (واجهة برمجة التطبيقات)

ولكن هذه الترجمة ترجمة عقيمة أي بمعنى أخر هي ترجمة حرفية فقط و هي لا تظهر حقيقة معنى API ...

عندما تبحث في المواقع الكبيرة وفي المشاريع البرمجية تمر عليك أشياء غريبة تحتوي على كلمة API فمثلاً تجد قواعد بيانات MySQL كاتبين مثلاً MySQL API و تجد Windows كاتبين Win32 API وتجد مثلاً موقع كاتبلك مثلاً My API وهكذا ...

طيب مامعنى هذا الكلام ؟

قبل أن نجيب على هذا التساؤل يجب أن نعرف أولاً مامعنى API ؟

إذا ً مامعنى API ؟

حرفياً هو كما ذكرنا بالأعلى ...

أما من حيث المفهوم فسأشرحها بمثال :

API هي عبارة عن (غلاف) لتغليف شئ صعب من الداخل وجعله سهل من الخارج

وهذا كمفهوم ولكن كيف يطبق في البرمجة
في حقيقة الأمر لو قال لك أحدهم أكتب لي برنامج يقوم بتحريك رأس الهارديسك


فسيكون جوابك هو (يانهار ازرق)

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

هذا الكلام النظري أما بالنسبة للناحية البرمجية فـ API هي مجموعة من الدوال الخدمية والتي تساعد في تبسيط شئ معقد وصعب



قبل ان نبداء بلتعلم هناك بعض الاشياء اللتي يجب شرحها
اولا عند تعلمك WinAPI سوف تقراءة معرفات غير مئلوفه مثل DWORD_PTR and LPRECT وايضا متغيرات باسماء غريبه مثل hWnd and pwsz
في الحقيقه هذه تسمى (Hungarian notation)



Typedefs - المتغيرات في بيئة ويندز تختلف عن السي بلس بلس نوعا ما لكنها مشابه


متغيرات الانتيجر - Integer




كما تلاحظ لا يوجد int او float لكن هناك نفس المتغيرات باسماء مختلفه لهذا لاتقلت لان المسئله مجرد التعرف على المتغيرات والاسماء


Boolean Type



ايضا المتغير BOOL يختلف عن bool في السي بلس بلس
الحروف الكبيره هيه للويندوز والصغيره للسي بلس بلس وسوف نعرف الفرق في الدروس القادمة


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


Pointer Types

المؤشرات تبداء بـ P- or LP-

امثله


C++:
RECT*  rect;  // Pointer to a RECT structure.
LPRECT rect;  // The same
PRECT  rect;  // Also the same.
P تعني Pointer
LP تعني "long pointer



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

Working with Strings


في البداية كان النظام بدائي نوعا ما ولا يدعم جميع حروف العالم ويسمى ANSI وهوه 8-bit
ثم اتى نظام جديد يسمى Unicode ويجمع جميع حروف العالم حتى الرموز وهوه UTF-16


لهذا سوف تجد char_t و wchar_t
W تعني Wide وهيه لـ Unicode



مثال

C++:
typedef wchar_t WCHAR;
وهذا مثال لتعريف المتغيرات

C++:
wchar_t a = L'a';
wchar_t *str = L"hello";

هذه صوره لبقية المتغيرات من نوع STRING




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

Unicode and ANSI Functions

كل فونكشن لديه نوعان

  • SetWindowTextA takes an ANSI string.
  • SetWindowTextW takes a Unicode string.
كما تلاحظ في نهايه الفونكشن الثاني يوجد W وهذا يعني يدعم الحروف العالمية







(بعض الاشياء منقوله لتسهيل الشرح وقله وقت الكتابه)


جميع الحقوق محفوظه لنقطة التطوير
All rights reserved



*. [ ~ .. في أمان الله .. ~ ] .*


*. [ ~ .. Mariio.. ~ ] .*
 

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل