מה הם קבצי DLL, וכיצד הם עובדים?
רוב הזמן אנו נתקלים רק קבצי DLL כאשר התוכנה נתון אינו מסוגל לעבוד בשל היעדר של קובץ .dll כלשהו. לאחר הנחיה זו, אנחנו הולכים באינטרנט כדי לקבל את קובץ ה- DLL, לשים אותו בתיקיה נכונה ולקבל את התוכנה פועלת. וזהו - במקרה סגור על קבצי DLL.
עם זאת, זה צריך להיות מעניין להבין יותר על קבצים אלה בפרט. הם נראים חשובים, כי היעדרם יכול למנוע תוכנות לרוץ, אז מה הם, בכל זאת? ואיך הם עובדים? בואו לקבל כמה תשובות.
קבצי DLL?
כמעט לכל אחד יש, בשלב מסוים בזמן, עסק עם קבצי DLL, לעתים קרובות כאשר התוכנה שהותקנה לאחרונה לא עובד כי אחד הקבצים הללו חסר.
DLL מייצג את "Dynamic-Link Library", ואת היישום של Microsoft את תפיסת הספרייה המשותפת במערכות ההפעלה Microsoft Windows ו- OS / 2. הם בעצם זהה EXEs, אבל הם נקראים אחרת עבור בהירות בתהליך הקישור. קבצי DLL לא יכול, עם זאת, להיות להורג ישירות, ומכאן קיומם של כלים כמו rundll.exe ו rundll32.exe .
קבצי DLL הם לא יותר מאשר אמצעי למפתחים להשתמש בקוד משותף ונתונים, המאפשר לשדרג פונקציות ללא צורך לקשר מחדש או לקמפל מחדש יישומים. במילים אחרות, קבצי DLL מכילים קוד ונתונים המשמשים מספר יישומים שונים. קובץ DLL יחיד יכול לשמש יישומים שונים, אם הם צריכים לדרוש את זה, ביטול הצורך עותקים מרובים של אותו מידע.
כיצד פועלים קבצי DLL?
תארו לעצמכם שני קבצים נפרדים: "example.exe", קובץ הפעלה נפוץ ו "library.dll", DLL המשמש את ההפעלה. כיצד קבצים אלה מחוברים על-ידי מערכת ההפעלה כאשר "example.exe" פועל?
כאשר "example.exe" פועל, מערכת ההפעלה טוענת אותו ומוצאת בו טבלה של נתונים, וקובעת כי (כמובן שלא במילים) "תוכנית זו משתמשת ברשימת הפונקציות הבאות מתוך קובץ הספרייה DLL", שהוא טכנית בשם "יבוא" או "פונקציות מיובאות" מ "Library.dll DLL" בתוכנית "example.exe".
לאחר מכן, קוד מטעין מחפש "library.dll", ואם הוא מוצא את זה, הקובץ נטען. בתוך קובץ זה DLL, יש רשימה אחרת, המכונה "רשימת הייצוא", אשר מחברת כתובות ספציפיות לכל אחת הפונקציות בתוך קובץ ה- DLL. מנקודה זו ואילך, כאשר "example.exe" צריך לקרוא פונקציה מ "library.dll", זה פשוט משתמש בכתובת זו.
כיצד להגיע ולאחסן קבצי DLL
כאשר תוכנה מסוימת חסרה קובץ DLL, הגישה הרגילה היא לחפש את הקובץ המקוון ולאחסן אותו בכונן הקשיח שלנו. זה יעבוד אם תמקם את ה- DLL בתוך התיקיה של התוכנה, אבל כפי שהסברתי לעיל, כמה תוכנות אולי צריך את הקובץ, ולכן עדיף לאחסן אותו שבו כולם יכולים להגיע אליו - וזה תיקיית "System32" (C : \ Windows \ System32). x64 משתמשים צריכים גם להעתיק את קובץ ה- DLL אל "C: \ Windows \ SysWOW64" (שתי הפעולות האלה צריך הרשאות מנהל להתבצע).
עם זאת, שיטה זו אינה מומלצת על ידי כולם, כפי שהוא עשוי להביא כמה סיכונים כמו DLLs מיושנים, זיהומים וירוס וכן הלאה. מניסיוני האישי, מעולם לא היו לי בעיות עם קבצי DLL (בדרך כלל אני מקבל אותם מהאתר הזה, אבל כדי להיות בטוח לבחור את "הורד קובץ Zip" אפשרות כדי למנוע תוכנות צד שלישי), אז בסופו של דבר הכל מסתכם טעם אישי.
האם אתה יודע את המידע הזה על קבצי DLL? האם יש משהו חשוב חסר במאמר זה? תן לנו לדעת את ההערות.