
05-02-2006, 15:28
|
 |
|
|
חבר מתאריך: 20.06.03
הודעות: 5,616
|
|
|
win32 application vs console application
בכתיבת תכנית המוגדת win32 application, אתה משתמש ב-winmain בתחביר הבא (זה
התחביר של microsoft):
קוד PHP:
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
הסבר לפרמטרים:
hInstance - פרמטר מסוג HINSTANCE שהוא למעשה מסכה ל-int. זוהי הידית (handle) לאפליקציה שלנו. (ידית היא מעין מצביע של windows לאובייקטים - לא נכנס פה להסברים בנושא).
hPrevInstance - פרמטר מסוג זהה לקודם, הוא הידית לאפליקציה זהה הרצה קודם לאפליקציה זו (מופע קודם של האפליקציה). במערכות הפעלה NT ב-win32 ערך זה תמיד NULL. (ושוב, אני לא אכנס פה להסברים נוספים למה...אולי בהזדמנות אם תהיה התעניינות בתכנות ל-win32api ).
lpCmdLine - פרמטר מסוג LPTSTR או מחרוזת. אלו הם הארגומנטים משורת הפקודה.
nCmdShow - פרמטר המייצג את הסגנון של חלון התכנית עם פתיחתה (מוגדל, ממוזער וכו...)
APIENTRY - הוא מאקרו שמוגדר כך:
קוד:
#define APIENTRY WINAPI
כשגם WINAPI הוא מאקרו:
קוד:
#define WINAPI __stdcall
עכשיו נבחן תחביר של הכרזה של console application (לא DOS כמו שקראת לזה)
קוד PHP:
int _tmain(int argc, _TCHAR* argv[])
פה שני הפרמטרים הינם מספר הארגומנטים, ומערך של מחרוזות של ארגומנטים.
כאשר אתה רוצה לגשת למחרוזת (האינדקס צריך להיות בין 0 לבין argc):
הינו מצביע למחרוזת הראשונה.
|