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

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

Βίντεο: Διαφορά μεταξύ DLL και LIB

Βίντεο: Διαφορά μεταξύ DLL και LIB
Βίντεο: Πανίσχυρη προσευχή για γρήγορη βοήθεια της Παναγίας 2024, Ιούλιος
Anonim

DLL εναντίον LIB

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

Τι είναι το DLL;

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

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

Τι είναι το LIB;

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

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

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

Συνιστάται: