לדלג לתוכן

תרגול קישור דינמי וזהות סימבולית

בנו את ה־DLL ואת שני הלקוחות. שמרו את פלט imports ו־exports וסמנו היכן נשמר שם הפונקציה בכל תוצר.

צרו גרסה חדשה של הספרייה שמשנה את המכפיל לארבע בלי לשנות חתימה. הפעילו לקוח ישן מול הספרייה החדשה ובדקו את השינוי. לאחר מכן שנו את שם ה־export ובדקו בנפרד את הלקוח המקושר ואת הלקוח שטוען במפורש.

הוסיפו פונקציית api_version וחוזה שבו לקוח תומך בגרסה אחת בלבד. ודאו שהלקוח דוחה גרסה אחרת לפני הפעלת פעולת העיבוד.

שרטטו את סדר ה־shutdown עבור DLL שרושם callback במערכת. הסבירו מדוע FreeLibrary אחרי סיום פונקציית הרישום עלול להיות מוקדם מדי.

בצעו תחקיר של קובץ חסר ושל export חסר. שמרו את קוד השגיאה מיד לאחר הקריאה שנכשלה, וציינו איזה מידע נוסף נדרש כדי לזהות תלות חסרה בתוך DLL קיים.