הבדל בין DLL ל-LIB

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

וִידֵאוֹ: הבדל בין DLL ל-LIB

וִידֵאוֹ: הבדל בין DLL ל-LIB
וִידֵאוֹ: מה ההבדל בין קראש להתאהבות? 2024, יולי
Anonim

DLL לעומת LIB

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

מה זה DLL?

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

רכיבים שנקראים קטעים מרכיבים 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. במונחים של שימוש חוזר, בעת כתיבת גרסאות חדשות של מערכות או יישומים חדשים לחלוטין, DLLs תמיד טובים יותר מ-LIBs.

מוּמלָץ: