
הטקסט המלא של הדקות הראשונות בהרצאה «בניית explorer של וונדוס מאפס - חלק 3» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
טוב, אנחנו ממשיכים, אז בואו נפתח את הוויז'ואל סטודיו ונריץ את המערכת שבנינו עד כה, בואו נראה מה יש לנו ומה חצר, אז הוא בונה את הכל, והיכן הוא?
CPU נמוך, איפה הוא נעלם? אני רואה שמינוס 1, זה אומר שהוא בעצם לא רץ, בואו נראה מה קורה איתו. מיין, בואו נריץ איתו שלב, יפה, והרץ, אז הוא לא יצר שום דבר, משהו פה לא בסדר. בואו נראה את הדיאלוג, זה נראה בסדר, אז מה קרה, למה לא הפעיל דיאלוג פאנק, בואו נראה מה קורה
בדיאלוג פאנק, נשים פה ברייק פוינט, נגלול, נשיב, נגיד לו שוב, הוא מגיע, בואו נראה מה קורה איתו, הוא אומר קומאנד, הוא לא אומר, הוא אומר ריטרן אפס, שוב מגיע האם הוא מגיע לאחד מאלו האם מישהו אומר לו משהו ורוץ הוא לא מגיע לשום מקום והוא נסגר עם מינוס אחד מאיפה מגיע מינוס אחד זה נורא מוזר זה משהו שעבד בסוף ההרתעה הקודמת אז נשאלת השאלה למה זה לא עובד עכשיו
מה השתנה בואו ננסה זה ריצוס מההרצאה הקודמת בואו ננסה לגשת לגיבוי שלי אני מקווה שיש לי גיבוי Windows Explorer 01 בואו נפתח עם זה קודם כל בואו נלך לדיבאג ונריץ את זה וזה רע והנה עמודת משה שהוספנו בואו נסגור את זה ואחד למעלה SLA נפתח אותו ונריץ אותו שוב ונראה אם זה עובד זה עובד בסדר שוב מה הגיבוי שלנו משבוע שעבר משהו מקולקל בו אז נסגור נזרוק נזרוק לכאן נזרוק את זה לא נזרוק את זה אני
אקח זה הווינדוס אקספלור את זה אני אקח לשולחן העבודה עם קונטרול כגיבוי את זה נסגור את זה נפתח את ה-sln וננסה להפעילו ריבילד נוודא שהוא עושה ריבילד בצורה תקינה ריבילד on succeeded ונריץ אותו והוא נסגר עם מינוס אחד אז הריבילד לא בעייתי רגע רגע רגע בואו נראה אין אפילו מה לראות אז בעצם בוא נריץ את הדיבאג הוא פשוט לא עושה כלום פשוט מת השאלה היא מה עושה
הריבילד שהוא כזה גרוע שגורם לו להחזיר מינוס אחד בואו נעשה, בואו נריץ את זה עוד פעם. נו, ועוד פעם, ועוד פעם, שום דבר, עוד שנייה אחת.
הטענה היא שהשולחן העבודה הוא לא עובד. בואו נחזור רגע למיסליניס, לריקורדינג, וכאן לזה. בואו בלי ריבילד ננסה להריץ אותו. וואטס בסדר. ננסה ריבילד וננסה להריץ אותו.
אני מניח שהוא לא ירוץ, יפה, הוא לא רץ. זאת אומרת ריבילד הורג אותו גם כאן, אוקיי. בואו נראה מה מחזירה דיאלוג פאראם אז היא מחזירה int ptr אז בואו נכתוב לו פה int ptr מה זה?
int ptr בואו נעשה f12 int ptr זה בעצם int יפה בואו נסגור to a new זה ואת זה ואת זה וזה בעצם int אז int i שווה לזה בואו נראה מה באמת היא מחזירה אז i שווה למינוס 1 1. בואו נעשה F1, מה זה אומר מינוס 1?
F1, נחכה ל-MSDN לעלות. קריאייטר מודל אדם. תורן ווליור, אין לו מינוס 1. To get external information call get last error.
בואו נראה. פרנל פרנל פרנל פרנל פרנל ווליור תורן ווליור 0. פרנל תורן 0, נזקן אצל הקומפטימילים והוצמדים את ווליור של נובמנות הווינדס.
פרנל פרנל פרנל ווליור תורן ווליור צריך לקרוא לזה, לראות מה הסיבה, תכף נקרא לו. דיאלוג בוקס פורמפרקשינג קביע את המודל דיאלוג בוקס פורמפרקשינג קביע את המודל דיאלוג בוקס פורמפרקשינג קביע את המודל דיאלוג בוקס פורמפרקשינג קביע
את המודל דיאלוג בוקס פורמפרקשינג קביע את המודל דיאלוג בוקס פורמפרקשינג קביע אני עובד בדיוק כמו אותו מחשב, לפני שלושה ארבעה ימים הקלטנו את זה, ועכשיו זה לא עובד, אחרי ריבילד בלבד.
נורא מוזר. דיאלוג בוקס פורמפ פאנקשן יוזס זה קריאייט ווינדוס סנד פאנקשן זה קריאייט דיאלוג בוקס דיאלוג בוקס פורמפ דן סנס דה מנה מנה מנה מנה מנה מסג' and a set phone message, and a...
dialog box The function displays a dialog box regardless of whether the template specifies visible styles.
Place the owner window and start its own message loop to retrieve a dispatch message that way the dialog box מתיר a call as the end dialog box. The dialog box must trace the dialog box, change the message loop, and leave it at the owner window.
אוקיי, בואו נראה לגבי גטלאסנר, בואו נקרא שנייה על get last error. get last error, זאתי get last error. get last error היא לא כזו מעניינת, אבל תכף תראו מה אנחנו עושים ממנה, יהיה פה משהו קצת מעניין.
יש פונקציה מאוד מעניינת שנקראת format mirror. get last error מחזירה לי בעצמה, מה היא מחזירה לי? בואו נראה מה אולי היא מחזירה. זה ה-d word, retrieve the calling threads last error.
אז מה הוא רוצה להגיד? זה לא הבנתי. הוא אומר, תקרא ל-get last error, תקבל עוד אינפורמציה תקרא לגדלאס אירו. אתם יודעים מה? בואו נקרא לגדלאס אירו. מה זה דרך אגב? לעומת מה זה? זה אותו דבר בדיוק.
אחד ממובן על שולחן העבודה כרגע. זה בסיפרוג, לא, זה. זה בדסקטופ, זה על השולחן עבודה, ואילו זה במיסלניאס. נעזוב את מיסלניאס, הוא הגיבוי שלנו.
סוף דיבאגינג, נסגור את זה. יפה, אז מה שאני רוצה לעשות, מה אמרנו שאני רוצה לעשות? תראי, get last here 0, בואו נצמצם את זה, וזה נכשל, בסדר, אה, שם השינו את זה?
שנייה אחת, טוב, אז אנחנו נקבל פה בחזרה int i שווה ל-b, טוב, אמרנו שזה מינוס 1, זה לא עוזר לנו, זה בכלל לא מעניין, מה שאותי מעניין כרגע זה לקרוא ל-get last ctrl z, get last error, get last error, לא מקבלת פרמטר, מחזירה דאבל וורד, בואו ניתן לו דאבל וורד, די וורד, די וורד, מה זה די וורד, F12, די וורד זה unsigned
law, בסדר, שיהיה unsigned law, שיהיה די וורד, ונקרא לזה R, R שווה לזה, אוקיי, בואו שוב ננסה את זה, ננסה לראות מה הבעיה, ו-R, אפס, הוא אומר שזה דווקא הצליח, אפס אומר הצליח, אפשר לראות F1 על Get Last Error Get, זה סרו ו-Get Last Error, זה לא מעניין,
בואו נגיד לא Don't Net Framework, סליחה, טעות שלי, אלא פלטפורם SDK וניגש בכלל לכאן ונגיד לו, ייקח לו קצת זמן, נחכה לו, נגיד לו פה Get Last Error גדלאס אירו לא גדלאס אירו כזה אז כל הדברים נוסעים לצבוק פלטפורמת dk גדלאס אירו פרנקשן אולי יפה גדלאס אירו זה יותר מפרנקשן אני לא יודע אם הוא אומר פה שאפס זה בסדר בקיצור נגיד שאתה מחזירה ל38 מינוס 40 מה אני עושה עם זה אז יש פונקציה to obtain error
stream for system error code use the format message בוא נראה את פורמט מסד נראית מפחידה אכן כך היא באמת מפחידה אבל בואו נשתמש בה כדי לדעת איך משתמשים בה גוללים פה למטה בוא נראה פעם היה להם תמיד דוגמא ופשוט הייתי עושה copy paste לדוגמא כי באמת להבין איך מפעילים אותה זה קצת מסובך אין להם פה דוגמא
נו באמת גט, פה למטה בסוף, אירו-הנדלינג פונקצ'יונס, בוא נראה, סינק, אולי יש להם, זה הרפרנס, אבארט אירו-הנדלינג ויוזינג, Notify user retrieving the last error code.
זו הדוגמה, קוראים לגט לאסטרו ואז קוראים לפורמט מסייג', כשפורמט מסייג' חוזרת פונים למסייג' בוקס, או, זה טוב, כבר עושים לוקר פרי ולוקר פרי, אני לא אקרא ל-exit process, את כל השאר אני כן רוצה או שאתם מה אתם מעדיפים שנראה איך אני קורא לפונקציה או שנעשה copy
paste אתה אומר בוא נראה איך אני קורא לפונקציה טוב אז זה הגיע לסדר אז בואו נקרא לפורמט מסג' אני רוצה באמת המטרה שלי זה לקרוא למסג'בוק למסג'בוק ולהגיד לאפס ואת הסטרינג להעביר לפה את s לתת לפה סטרינג ופה error ופה אפס אני רוצה להציג את ההודעה בתוך s אני רוצה שs תכיל את ההודעה
אה אז איך עושים את זה? אז קוראים לפורמט מסאג' קונטרול רבע יפה פורמט מסאג' קודם כל פלאגס מה הפלאגס בוא ניתן לאפס מה הסורס נגיד לאפס מה המסאג' איי די או שאלה טובה בקיצור זה יהיה קצת מסובך בלי הhealth בוא נראה פורמט מסאג' מה הם עושים פה הם אומרים allocate buffer from system ignore insert זה מה שהם אומרים
בואו נחזור רגע אחורה בואו ננסה להבין מה זה הפרמטרים האלה, הפרמטר הראשון פלאג, the formatting options and how to interpret the source parameter, the low-order byte of the W3 device, how the function handles line breaks in the output buffer, the low-order.
This parameter can be one or more of the following: format message, בואו נעשה ככה, בואו ניקח את זה כמו שזה, לראות את פורמט מסאג' ייקח לי את הכל וזהו אחרת ייקח לי הרבה זמן לפענח את זה בפונקציה לא פשוטה להפעלה אז אני זורק את כל זה פה עכבר ימני ופייסט בואו נעבור על זה אז קודם כל זה lp void לא הוא פוינטר ל-void זה כמו void כוכבית אני לא
אגע בזה כרגע הוא כבר יכול לגיית לאסטרו אני אזרוק אפילו את הגיית לאסטרו שלי כי כרגע אני רוצה לראות למה למה זה לא עובד בהזדמנות אחרת אולי טיפה יותר נתעמק בפורמט מסאג' בוא נעשה או יפה או מכיר את פורמט מסאג' מצוין בוא נניח שהוא מכיר הכל יפה בסופו של דבר אני רוצה הנה יש לו פה אפילו מסאג' בוקס גם את המסאג'
בוקס שלי אני אעיף ובואו נפעיל בוא נראה אם זה פועל ועדיף מה הבעיה בואו נעצור אותו ונבצע ונגיד לו no ומה הבעיה LPSD function undeclared identifier LPSD function כנראה שם הפונקציה פה רוצה כנראה שנשים את שם הפונקציה כדי שההודעה זה לא כזה כזה מאתגר רוצים l ושם הפונקציה שאנחנו מפעילים זה זה