منتديات تراتيل شاعر

منتديات تراتيل شاعر (http://tra-sh.com/vb/index.php)
-   تطوير المواقع والمنتديات ▪● (http://tra-sh.com/vb/forumdisplay.php?f=44)
-   -   1- البرمجة في بيئة الويندوز - Intro to Win32 programming in C++ (http://tra-sh.com/vb/showthread.php?t=135354)

رحيل المشاعر 06-20-2019 10:36 PM

1- البرمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
http://img.dev-point.com/imgcache/2013/10/88871.png





http://img.dev-point.com/imgcache/2013/10/88872.gif


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


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

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



http://img.dev-point.com/imgcache/2013/10/88872.gif


الدرس الاول من البرمجه في بيئه الويندوز - 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 هي مجموعة من الدوال الخدمية والتي تساعد في تبسيط شئ معقد وصعب



http://img.dev-point.com/imgcache/2013/10/88872.gif


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


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


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


https://i.gyazo.com/fde15044559a9459...42c448494a.png




كما تلاحظ لا يوجد 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



https://i.gyazo.com/5ccb989543f65d3e...973d314c72.png



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

Unicode and ANSI Functions

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

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







http://img.dev-point.com/imgcache/2013/10/88872.gif



الخل الوفي 06-21-2019 12:59 AM

رد: 1- البرمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
انتقاااء راائع ومميز
الله يسعد قلبك
يعطيك العافية

صاحبة السمو 06-21-2019 12:59 AM

رد: 1- البرمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
طـرح رآئــع
سلمت آناملك ع الإنتقاء
لاحرمنا الله من عبير تواجدك وجديدك
دمت بسعادهـ بــحـجم السماء
لقلبك طوق آليآسمين ,,~
https://vb.almstba.com/imgcache/alms...721192_640.gif

a7ases 06-22-2019 01:37 AM

رد: 1- البرمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
سلمت يدآك..على جميل طرحك وحسن ذآئقتك
يعطيك ربي ألف عافيه..
بإنتظار جديدك بكل شوق.
لك مني جزيل الشكر والتقدير لاعدمناك...

هيبة مشاعر 06-22-2019 03:24 PM

رد: 1- البرمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
http://www.tra-sh.com/up/uploads/156120486851.gif

رحيل المشاعر 06-22-2019 11:02 PM

رد: 1- البرمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
احساس
يعطيك العافية
تسلم ايدك يارب
دمتِ بكل خير

رحيل المشاعر 06-22-2019 11:02 PM

رد: 1- البرمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
الخل
يعطيك العافية
تسلم ايدك يارب
دمتِ بكل خير

رحيل المشاعر 06-22-2019 11:02 PM

رد: 1- البرمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
صاحبه
يعطيك العافية
تسلم ايدك يارب
دمتِ بكل خير

رحيل المشاعر 06-22-2019 11:03 PM

رد: 1- البرمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
هيا
يعطيك العافية
تسلم ايدك يارب
دمتِ بكل خير

شموع الحب 06-24-2019 01:30 PM

رد: 1- البرمجة في بيئة الويندوز - Intro to Win32 programming in C++
 
يعطيك العافيه ع جهودك
لاخلا ولاعدم منك !


الساعة الآن 01:16 PM

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. TranZ By Almuhajir
HêĽм √ 3.2 OPS BY: ! ωαнαм ! © 2010
new notificatio by 9adq_ala7sas
User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Security team

mamnoa 4.0 by DAHOM