תרגול ארכיטקטורות וחוזי WinAPI¶
הריצו את expand על מחרוזת בלי משתנה סביבה, על משתנה קיים ועל שם משתנה שאינו קיים. בדקו את ההבדל בין שגיאת API לבין טקסט שנשאר בלתי מורחב לפי החוזה.
כתבו מתאם שמקבל callback של פעולת ההרחבה, כדי לדמות תוצאה שגדלה בין הקריאות בלי לשנות סביבה של threads אחרים. בדקו שהקוד מגדיל buffer ושאחרי ארבעה שינויים הוא מפסיק עם כשל מפורש.
בנו את ניסוי הארכיטקטורה ב־x64 וב־x86 אם ה־toolset מותקן. השוו sizeof(long), sizeof(void*) והפלט של IsWow64Process2.
הכינו טבלת חוזה עבור CreateFileW, CreateEventW, GetModuleFileNameW ו־ExpandEnvironmentStringsW: ערך כשל, יחידות אורך, האם null נכלל ופונקציית שחרור אם קיימת.
תקנו קוד שמפרש HRESULT hr = S_FALSE; ככשל בגלל hr != 0. הסבירו מדוע עדיין יכול להיות צורך להבחין בין S_OK ל־S_FALSE.