Διαφορά μεταξύ DLL και LIB

Anonim

DLL vs LIB

Μια βιβλιοθήκη είναι μια συλλογή πόρων που μπορούν να χρησιμοποιηθούν για την ανάπτυξη εφαρμογών. Μια βιβλιοθήκη αποτελείται συνήθως από υπορουτίνες, λειτουργίες, κλάσεις, τιμές και τύπους. Κατά τη διάρκεια της διαδικασίας σύνδεσης (συνήθως γίνεται από έναν συνδέσμο), οι βιβλιοθήκες και τα εκτελέσιμα στοιχεία κάνουν αναφορά μεταξύ τους. Τα αρχεία της βιβλιοθήκης χωρίζονται σε στατικές και δυναμικές βιβλιοθήκες ανάλογα με τον χρόνο φόρτωσης των υπορουτινών στην εφαρμογή προορισμού. Κατά συνέπεια, τα αρχεία LIB είναι στατικά συνδεδεμένες βιβλιοθήκες και τα αρχεία DLL είναι δυναμικά συνδεδεμένες βιβλιοθήκες.

Τι είναι το DLL;

Η βιβλιοθήκη δυναμικής σύνδεσης (πιο γνωστή ως DLL) είναι μια εφαρμογή κοινής βιβλιοθήκης που αναπτύχθηκε από τη Microsoft. Χρησιμοποιεί το. dll,. ocx ή. drv επεκτάσεις και χρησιμοποιούνται σε λειτουργικά συστήματα Microsoft Windows και OS / 2 … dll χρησιμοποιείται από τα κανονικά αρχεία DLL. Και. Η επέκταση ocx χρησιμοποιείται από βιβλιοθήκες που περιέχουν στοιχεία ελέγχου ActiveX και. Η επέκταση drv χρησιμοποιείται από αρχεία προγράμματος οδήγησης παλαιού τύπου. Η μορφή αρχείου DLL είναι ίδια με τα αρχεία των Windows EXE (Φορητά εκτελέσιμα αρχεία σε Windows 32 bit / 64 bit και Νέο εκτελέσιμο σε Windows 16 bit). Ως εκ τούτου, οποιοσδήποτε συνδυασμός κώδικα, δεδομένων και πόρων μπορεί να περιέχεται σε αρχεία DLL (όπως και σε αρχεία EXE). Ως ουσία, τα αρχεία δεδομένων με τη μορφή αρχείου DLL ονομάζονται DLL πόρων. Οι βιβλιοθήκες εικονιδίων (με επέκταση ICL.) Και τα αρχεία γραμματοσειρών (με τις επεκτάσεις.fon και. Fot) αποτελούν παραδείγματα DLL πόρων.

Τα συστατικά που ονομάζονται τμήματα αποτελούν ένα DLL και κάθε τμήμα έχει τα δικά του χαρακτηριστικά όπως το μόνο για ανάγνωση / εγγράψιμο και εκτελέσιμο / μη εκτελέσιμο. Οι ενότητες κώδικα είναι εκτελέσιμες, ενώ οι ενότητες δεδομένων δεν είναι εκτελέσιμες. Οι ενότητες κώδικα είναι κοινές και οι ενότητες δεδομένων είναι ιδιωτικές. Αυτό σημαίνει ότι όλες οι διαδικασίες που χρησιμοποιούν το DLL θα χρησιμοποιούν το ίδιο αντίγραφο του κώδικα, ενώ κάθε διαδικασία θα έχει δικό της αντίγραφο των δεδομένων. Η κύρια δυναμική βιβλιοθήκη για τα Windows είναι το kernel32. dll, η οποία περιέχει τις βασικές λειτουργίες (λειτουργικότητα αρχείων και μνήμης) στα Windows. Το COM (Μοντέλο Αντικειμένου Συστήματος) είναι η επέκταση του DLL σε OOP (Αντικειμενοστρεφής Προγραμματισμός). Τα συμβατικά DLL είναι πιο εύχρηστα από τα αρχεία COM.

Τι είναι το LIB;

Τα αρχεία LIB είναι στατικές βιβλιοθήκες (επίσης γνωστές ως στατικά συνδεδεμένες βιβλιοθήκες). Τα αρχεία LIB περιέχουν μια συλλογή από υπορουτίνες, εξωτερικές λειτουργίες και μεταβλητές. Τα αρχεία LIB επιλύονται κατά το χρόνο μεταγλώττισης (σε αντίθεση με το χρόνο εκτέλεσης). Ο κώδικας αντιγράφεται πραγματικά στην εφαρμογή προορισμού. Ένας μεταγλωττιστής, συνδετήρας ή συνδετήρας θα κάνει αυτή την ανάλυση και θα παράγει ένα αρχείο αντικειμένων και ένα εκτελέσιμο αρχείο. Αυτή η διαδικασία ονομάζεται διαδικασία στατικής κατασκευής.

Ποια είναι η διαφορά μεταξύ DLL και LIB;

Οι βιβλιοθήκες LIB μπορούν να κληθούν κατά τη διάρκεια της μεταγλώττισης, αλλά οι βιβλιοθήκες DLL μπορούν να καλούνται μόνο κατά τη διάρκεια του χρόνου εκτέλεσης.Τα αρχεία LIB είναι σημαντικά μεγαλύτερα από τα αρχεία DLL. Ένα πολύ κοινό πρόβλημα με τα αρχεία DLL είναι το πρόβλημα της έκδοσης. Αυτό συμβαίνει όταν ο κώδικας του DLL αλλάξει και η εφαρμογή χρησιμοποιεί μια λάθος έκδοση ενός DLL. Αυτό δεν είναι ένα πρόβλημα που σχετίζεται με τα αρχεία LIB. Όσον αφορά τη δυνατότητα επαναχρησιμοποίησης, κατά τη σύνταξη νέων εκδόσεων συστημάτων ή εντελώς νέων εφαρμογών, τα DLL είναι πάντα καλύτερα από τα LIBs.