Διαφορά μεταξύ Συναρμολόγησης και DLL

Διαφορά μεταξύ Συναρμολόγησης και DLL
Διαφορά μεταξύ Συναρμολόγησης και DLL

Βίντεο: Διαφορά μεταξύ Συναρμολόγησης και DLL

Βίντεο: Διαφορά μεταξύ Συναρμολόγησης και DLL
Βίντεο: China Railways vs India Railways - This is truly shocking... 🇨🇳 中国vs印度。。。我震惊了 2024, Νοέμβριος
Anonim

Συναρμολόγηση εναντίον DLL

Η βιβλιοθήκη είναι μια συλλογή πόρων που μπορούν να χρησιμοποιηθούν για την ανάπτυξη εφαρμογών. Μια βιβλιοθήκη συνήθως αποτελείται από υπορουτίνες, συναρτήσεις, κλάσεις, τιμές και τύπους. Κατά τη διαδικασία σύνδεσης (συνήθως γίνεται από έναν σύνδεσμο), οι βιβλιοθήκες και τα εκτελέσιμα αρχεία κάνουν αναφορά μεταξύ τους. Τα αρχεία DLL είναι τα αρχεία βιβλιοθήκης που συνδέονται δυναμικά. Το DLL αναπτύχθηκε από τη Microsoft. Ωστόσο, λόγω ορισμένων προβλημάτων που παρουσιάζονται με τα αρχεία DLL, η Microsoft κατέληξε σε μορφή αρχείου Assembly (με το πλαίσιο. NET). Τα αρχεία συναρμολόγησης μοιάζουν πολύ με τα 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.

Τι είναι μια Συνέλευση;

Τα αρχεία συναρμολόγησης εισήχθησαν από τη Microsoft για την επίλυση πολλών προβλημάτων που υπάρχουν με τα αρχεία DLL. Τα αρχεία συναρμολόγησης εισήχθησαν με το πλαίσιο Microsoft. NET. Μια εκτελέσιμη λογική μονάδα λειτουργικότητας ονομάζεται Συνέλευση. Οι συναρμολογήσεις είναι εκτελέσιμες στο. NET CLR (Common Language Runtime). Φυσικά, τα συγκροτήματα υπάρχουν ως αρχεία EXE ή DLL. Ωστόσο, είναι πολύ διαφορετικά από τα DLL του Microsoft Win32, εσωτερικά. Ένα αρχείο συναρμολόγησης αποτελείται από μια δήλωση, μεταδεδομένα, MISL (Microsoft Intermediate Language Code) και άλλους πόρους. Μια συνέλευση είναι αυτοπεριγραφόμενη. Το μανιφέστο περιέχει πληροφορίες όπως όνομα, έκδοση, κουλτούρα, ισχυρό όνομα, λίστα αρχείων, τύπους και εξαρτήσεις. Ο κώδικας MISL εκτελείται μέσω CLR (δεν μπορεί να εκτελεστεί απευθείας).

Ποια είναι η διαφορά μεταξύ Συναρμολόγησης και DLL;

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

Συνιστάται: