ההבדל בין DLL ו- LIB

Anonim

DLL לעומת LIB

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

-> ->

מהו DLL?

קישור דינמי ספריה (הידוע יותר בשם DLL) הוא יישום ספריה משותפת שפותחה על ידי מיקרוסופט. הוא משתמש. dll,. ocx או. הרחבות drv והם משמשים במערכות ההפעלה Microsoft Windows ו- OS / 2 … DLL משמש קבצי DLL רגילים. ו. ocx הרחבה משמש ספריות המכילות פקדי ActiveX ו. drv הארכה משמשת את קבצי מנהל מערכת מורשת. תבנית קובץ ה- DLL זהה לקובצי ה- EXE של Windows (קובצי הפעלה ניידת ב- Windows 32-bit / 64-bit ו- New Executable ב- Windows 16 סיביות). לכן, כל שילוב של קוד, נתונים ומשאבים יכול להיות הכלול קבצי DLL (בדיוק כמו קבצי EXE). בתור עובדה של עובדה, קבצי נתונים עם פורמט קובץ DLL נקראים DLLs משאבים. ספריות אייקון (עם סיומת icl) וקבצי גופן (עם. Fon ו. סיומות fot) הן דוגמאות של DLLs משאבים.

-> ->

רכיבים הנקראים סעיפים מהווים DLL וכל סעיף יש תכונות משלו כמו לקריאה בלבד / לכתיבה ו הפעלה / לא הפעלה. מקטעי קוד ניתנים להפעלה, ואילו מקטעי נתונים אינם ניתנים להפעלה. מקטעי הקוד משותפים, ומקטעי הנתונים הם פרטיים. כלומר, כל התהליכים המשתמשים ב- DLL ישתמשו באותו עותק של הקוד, בעוד שלכל תהליך יהיה עותק משלו של הנתונים. הספריה הדינמית העיקרית עבור Windows היא kernel32. dll, המכיל את הפונקציות הבסיסיות (פונקציונליות קבצים וזיכרון) ב- Windows. COM (Component Object Model) הוא הרחבה של DLL ל OOP (תכנות מונחה עצמים). קבצי DLL קונבנציונליים קלים יותר לשימוש מאשר קבצי COM.

-> ->

מהו LIB?

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

-> ->

מה ההבדל בין DLL ו- LIB?

ספריות LIB יכולות להיקרא בזמן ההידור, אבל ספריות DLL יכולות להיקרא רק בזמן ריצה.קבצי LIB גדולים באופן משמעותי מקבצי DLL. בעיה נפוצה מאוד עם קבצי DLL היא בעיה בגירסה. זה קורה כאשר הקוד של ה- DLL השתנה היישום משתמש גרסה לא נכונה של DLL. אין זו בעיה הקשורה לקובצי LIB. במונחים של שימוש חוזר, בעת כתיבת גרסאות חדשות של מערכות או יישומים חדשים לגמרי, קבצי DLL תמיד טובים יותר מ- LIB.