לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #2  
ישן 05-02-2006, 15:28
צלמית המשתמש של fat fish
  fat fish fat fish אינו מחובר  
 
חבר מתאריך: 20.06.03
הודעות: 5,616
win32 application vs console application
בתגובה להודעה מספר 1 שנכתבה על ידי kramer 1 שמתחילה ב "שאלות בנושא API ופונקציית malloc"

בכתיבת תכנית המוגדת 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_TCHARargv[]) 

פה שני הפרמטרים הינם מספר הארגומנטים, ומערך של מחרוזות של ארגומנטים.
כאשר אתה רוצה לגשת למחרוזת (האינדקס צריך להיות בין 0 לבין argc):
קוד:
argv[0]

הינו מצביע למחרוזת הראשונה.
_____________________________________
[ זיו ]
[ fat fish ]

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #12  
ישן 11-02-2006, 11:37
  danben danben אינו מחובר  
 
חבר מתאריך: 19.06.03
הודעות: 549
מעבר לעובדה שזה (הרבה) יותר קריא
בתגובה להודעה מספר 11 שנכתבה על ידי DrTempi שמתחילה ב "תאמת שזה רק בשביל הקריאות"

זה גם תיכנות יותר נכון.
היום במחשב ביתי מצביע ל INT הוא בגודל של 4 בתים.
אבל כבר עכשיו יש מחשבים של 64BIT ובהם גודלו של INT* יהיה 8 בתים ולא ארבעה. הקוד שהוא כותב היום לא יעבוד לו על המחשב שהוא הולך לקנות בעוד שנה כי במקום לרשום:
קוד:
malloc(sizeof(int*));

הוא רשם:
קוד:
malloc(4);

שזאת פשוט הגדרה לא נכונה.

ועכשיו לך תדבג גלישת זיכרון שקוראת לך 100 שורות אחרי שאתה מבצע הקצאה....

קוד שאתה כותב צריך להיות נכון לא רק על המחשב שלך היום אלא גם על המחשב שלך שיהיה לך מחר וגם על המחשב שלי וגם על המחשבים של כולנו שיהיו לנו בעוד 10 שנים...ובטח שבלי תלות בגודל של INT*.

אז נכון שלקריאות יש חשיבות גדולה מאוד, אבל גם לגנריות ולפורטביליות.
אבל הדרישות האלה לא הופכות קוד לטוב, אבל אי מענה על הדרישות האלה הופכות אותו לקוד לא טוב...(קוד רע?).
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 23:44

הדף נוצר ב 0.04 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2025 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר