اللهم لك الحمد حمدًا طيّبًا كثيرًا مُباركًا فيه؛
ملء السّماوات وملء الأرض وما بينهما، وملء ما شيئت من شيء بعدهما.
*. أرحب بكم إخواني وأخواتي
أعضاء منتدى نقطة التطوير .*
*. أتمنى أن تكونوا
في تمام الصحة والعافية.*
الدرس الاول من البرمجه في بيئه الويندوز - 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++:
?
1
2
3
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++:
?
1
typedef wchar_t WCHAR;
وهذا مثال لتعريف المتغيرات
C++:
?
1
2
wchar_t a = L'a';
wchar_t *str = L"hello";
هذه صوره لبقية المتغيرات من نوع
STRING
-------------------------------------------------------------------------------------------------------------------------------------------
Unicode and ANSI Functions
كل فونكشن لديه نوعان