




السمعة:
السلام عليكم ورحمة الله وبركاته
سأختصر الطريق لكل من يريد ان يتعلم الـ Win32 او ما يسمى بالـ Windows API
نبذه عنه :
واجهة برمجة تطبيقات ويندوز (بالإنجليزية: Windows API) هي واجهة برمجة تطبيقات صنعت بواسطة مايكروسوفت وتتوفر في أنظمة تشغيل ويندوز
تستخدم بِلُغَة برمجة ++C، يمكن إستخدامها في #C و Visual Basic،
تكون متوفرة في عدد من المكاتب وأهمها :
user32.dll gdi32.dll kernal32.dll
تستخدم واجهة برمجة تطبيقات ويندوز في واجهة المستخدم الرسومية
سأختصر الطريق لكل من يريد ان يتعلم الـ Win32 او ما يسمى بالـ Windows API
نبذه عنه :
واجهة برمجة تطبيقات ويندوز (بالإنجليزية: Windows API) هي واجهة برمجة تطبيقات صنعت بواسطة مايكروسوفت وتتوفر في أنظمة تشغيل ويندوز
تستخدم بِلُغَة برمجة ++C، يمكن إستخدامها في #C و Visual Basic،
تكون متوفرة في عدد من المكاتب وأهمها :
user32.dll gdi32.dll kernal32.dll
تستخدم واجهة برمجة تطبيقات ويندوز في واجهة المستخدم الرسومية
GDI32.dll | وظائف واجهة جهاز الرسومات (GDI) لإخراج الجهاز، مثل تلك الخاصة بالرسم وإدارة الخطوط. |
Kernel32.dll | وظائف نظام التشغيل منخفضة المستوى لإدارة الذاكرة ومعالجة الموارد. |
User32.dll | ظائف إدارة Windows لمعالجة الرسائل وأجهزة ضبط الوقت والقوائم والاتصالات. |
الان بما اننا قمنا بجمع معلومات عن الـ Windows API كيف السبيل للتعمق واستيعاب المكتبات ومعرفة الدوال الخاصه بكل مكتبة والتعامل معها بكل بساطه
الطريق الاول:
اما التعامل معه بالكتابه المباشره للكود والبحث عن المكتبه المطلوبه كمثل اضافة Menu او اظاهر رسائل للمستخدم Message او اوامر الادخال INPUT او عمل Dailog والخ .
والطريق الثاني:
وهو الافضل والاسهل لرؤية الدوال واستيعابها وتبسيط الامور المعقده وهيا :
اما التعامل مع محرر Microsoft C++ 6
او استخدام الاصدارات الجديده من Visual Studio وهذا ما انصح به وهذا ما اطمح الى توضيحه لكل من يريد فهم الـ Windows API
لنبدء ب Visual Studio 2022
ملاحظه : جميع الاصدارات لديها ما يسمى MFC وهو المطلوب لهذا الموضوع ..
ماهو الـ MFC
هوا Microsoft Foundation Classes واختصاره MFC توفر الكائنات عبر Win32
لتمكين التطوير السريع لتطبيقات واجهة المستخدم الرسومية في C++.
ولكن ليس MFC الهدف بالموضوع الا اذا اردت التعمق اكثر بأستخدام الـ OOP Win32 API ويفضل البحث عن شرح الـ ++MFC C من خلال اليوتيوب
لفهم Win32 API هو عمل مشاريع ++MFC C
حتى يتأقلم الشخص على معرفة الكود وفهمه وكيف انشاء الـ Interface MFC
لو قلنا لشخص اذهب وتعلم الـ Win32 API سيدخل بدوامه كبيره ربما يجد تعقيدات تمنعه من الاستمرار .
ولكن لو قلنا له ابدء بالـ mfc ++c وتعلمه سيجد ان الـ Win32 API واضح وغير معقد ..
ايضآ لتوضيح فائدة الـ typedef
الـ typedef وضيفته تغيير انواع المتغيرات والخ
مثلآ لدينا LPCWSTR هوا الـ wchar_t
WinAPI data types and constants
| managed type | Notes (mainly in conjunction with P/Invoke) | |
VOID | void | System.Void | Applied to a function that does not return a value. |
HANDLE | void * | System.IntPtr or System.UIntPtr | 32 bits on 32-bit Windows operating systems, 64 bits on 64-bit Windows operating systems. |
BYTE | unsigned char | System.Byte | 8 bits |
SHORT | short | System.Int16 | 16 bits |
WORD | unsigned short | System.UInt16 | 16 bits |
INT | int | System.Int32 | 32 bits |
UINT | unsigned int | System.UInt32 | 32 bits |
LONG | long | System.Int32 | 32 bits |
BOOL | long | System.Boolean or System.Int32 | 32 bits, see also UnmanagedType.Bool. |
DWORD | unsigned long | System.UInt32 | 32 bits |
ULONG | unsigned long | System.UInt32 | 32 bits |
CHAR | char | System.Char | Decorate with ANSI. |
WCHAR | wchar_t | System.Char | Decorate with Unicode. |
LPSTR | char * | System.String or System.Text.StringBuilder | Decorate with ANSI. |
LPCSTR | const char * | System.String or System.Text.StringBuilder | Decorate with ANSI. |
LPWSTR | wchar_t * | System.String or System.Text.StringBuilder | Decorate with Unicode. |
LPCWSTR | const wchar_t * | System.String or System.Text.StringBuilder | Decorate with Unicode. |
FLOAT | float | System.Single | 32 bits |
DOUBLE | double | System.Double | 64 bits |
للأطلاع على الانواع اضف مكتبة
windef.h
ضع السهم على المكتبه ثم دبل كلك حتى يتم فتحها سترى الانواع
مثال:
وغيره من المتغيرات اتمنى لكل شخص يهتم بهذي الامور الاطلاع على اي كورس يتحدث عن الـ MFC ++C
ربما اذا كان هناك وقت سأضع ما يتعلق بكل الـ WIN32 API وتوضيح الالتباسات بقراءة الشفرات البرمجيه وتوضيح فائدتها ان شاء الله
اعتذر ان الموضوع ليس فيه صور واكواد توضيحيه والسبب يحتاج تصوير وترتيب وقت زمني وفراغ عائلي .
بالتوفيق للجميع
مثال:
كود:
typedef unsigned long DWORD;
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef float FLOAT;
typedef FLOAT *PFLOAT;
typedef BOOL *PBOOL;
typedef BOOL *LPBOOL;
typedef BYTE *PBYTE;
typedef BYTE *LPBYTE;
typedef int *PINT;
typedef int *LPINT;
typedef WORD *PWORD;
typedef WORD *LPWORD;
typedef long *LPLONG;
typedef DWORD *PDWORD;
typedef DWORD *LPDWORD;
typedef void *LPVOID;
typedef const void *LPCVOID;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned int *PUINT;
typedef WORD ATOM;
typedef DWORD COLORREF;

وغيره من المتغيرات اتمنى لكل شخص يهتم بهذي الامور الاطلاع على اي كورس يتحدث عن الـ MFC ++C
ربما اذا كان هناك وقت سأضع ما يتعلق بكل الـ WIN32 API وتوضيح الالتباسات بقراءة الشفرات البرمجيه وتوضيح فائدتها ان شاء الله
اعتذر ان الموضوع ليس فيه صور واكواد توضيحيه والسبب يحتاج تصوير وترتيب وقت زمني وفراغ عائلي .
بالتوفيق للجميع
التعديل الأخير بواسطة المشرف: