Πώς να δημιουργήσετε και να χρησιμοποιήσετε DLLs στους Δελφούς

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

Η έννοια των αρχείων DLL είναι ο πυρήνας του αρχιτεκτονικού σχεδιασμού των Windows και, ως επί το πλείστον, τα Windows είναι απλά μια συλλογή αρχείων DLL.

Με τους Delphi, μπορείτε να γράψετε και να χρησιμοποιήσετε τα δικά σας DLL και ακόμα και λειτουργίες κλήσεων ανεξάρτητα από το αν αναπτύχθηκαν ή όχι με άλλα συστήματα ή προγραμματιστές, όπως Visual Basic, ή C / C ++.

Δημιουργία βιβλιοθήκης δυναμικής σύνδεσης

Οι παρακάτω μερικές γραμμές θα σας δείξουν πώς να δημιουργήσετε ένα απλό DLL χρησιμοποιώντας τους Delphi.

Για την αρχή ξεκινήστε τους Δελφούς και περιηγηθείτε Αρχείο> Νέο> DLL για να δημιουργήσετε ένα νέο πρότυπο DLL. Επιλέξτε το προεπιλεγμένο κείμενο και αντικαταστήστε το με αυτό:

βιβλιοθήκη TestLibrary;

χρήσεις SysUtils, κλάσεις, διαλόγους;

διαδικασία DllMessage; εξαγωγή;ξεκινήσει
instagram viewer

 ShowMessage («Hello world από ένα Delphi DLL»);

τέλος;

εξαγωγές DllMessage;

αρχή. 

Αν κοιτάξετε το αρχείο έργου της εφαρμογής Delphi, θα δείτε ότι ξεκινάει με την αποκλειστική λέξη πρόγραμμα. Αντίθετα, τα αρχεία DLL αρχίζουν πάντα με βιβλιοθήκη και στη συνέχεια α χρήσεις ρήτρα για όλες τις μονάδες. Σε αυτό το παράδειγμα, το DllMessage ακολουθεί η διαδικασία, η οποία δεν κάνει τίποτα αλλά δείχνει ένα απλό μήνυμα.

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

Για να χρησιμοποιήσουμε αυτό το DLL, πρέπει να το συντάξουμε πατώντας Ctrl + F9. Αυτό θα πρέπει να δημιουργήσει ένα DLL που ονομάζεται SimpleMessageDLL.DLL στο φάκελο των έργων σας.

Τέλος, ας ρίξουμε μια ματιά στο πώς να καλέσετε τη διαδικασία DllMessage από ένα στατικό φορτωμένο DLL.

Για να εισαγάγετε μια διαδικασία που περιλαμβάνεται σε ένα αρχείο DLL, μπορείτε να χρησιμοποιήσετε τη λέξη-κλειδί εξωτερικός στη δήλωση της διαδικασίας. Για παράδειγμα, λαμβάνοντας υπόψη τη διαδικασία DllMessage που αναφέρθηκε παραπάνω, η δήλωση στην κλήση της εφαρμογής θα μοιάζει με αυτή:

διαδικασία DllMessage; εξωτερικός 'SimpleMessageDLL.dll' 

Η πραγματική κλήση σε μια διαδικασία δεν είναι τίποτα περισσότερο από:

 DllMessage; 

Ολόκληρος ο κώδικας για μια μορφή Δελφών (όνομα: Form1), με ένα TButton (με όνομα Κουμπί1) που καλεί τη λειτουργία DLLMessage, μοιάζει με κάτι τέτοιο:

μονάδα Μονάδα 1;

διεπαφή


χρήσεις

 Windows, Μηνύματα, SysUtils, Παραλλαγές, Μαθήματα,

 Γραφικά, έλεγχοι, φόρμες, διαλόγους, StdCtrls;


τύπος

 TForm1 = τάξη (TForm)

 Κουμπί1: TButton;

διαδικασία Κουμπί1Κλικ (αποστολέας: TObject);ιδιωτικός{Ιδιωτικές δηλώσεις}δημόσιο{Δημόσιες δηλώσεις}τέλος;

var

 Μορφή1: TForm1;


διαδικασία DllMessage; εξωτερικός 'SimpleMessageDLL.dll'

εκτέλεση


{$ R * .dfm}


διαδικασία TForm1.Button1Κλικ (αποστολέας: TObject);ξεκινήσει

 DllMessage;

τέλος;

τέλος.