Τι είναι ένα αρχείο DLL;
Ένα αρχείο DLL ή Dynamic Link Library είναι ένας τύπος εκτελέσιμου αρχείου. Είναι ένα από τα αρχεία επέκτασης που βρίσκονται πιο συχνά στη συσκευή σας και συνήθως αποθηκεύεται στο φάκελο System32 στα Windows σας. Το αρχείο επέκτασης DLL αναπτύχθηκε από τη Microsoft και χρησιμοποιείται ευρέως από αυτήν. Έχει υψηλή δημοτικότητα χρηστών. Το DLL λειτουργεί ως ράφι που περιέχει τα προγράμματα οδήγησης/διαδικασίες/λειτουργίες/ιδιότητες που έχουν σχεδιαστεί και εφαρμοστεί για ένα πρόγραμμα/εφαρμογή από τον διακομιστή των Windows. Ένα μεμονωμένο αρχείο DLL μπορεί επίσης να κοινοποιηθεί σε διάφορα προγράμματα των Windows. Αυτά τα αρχεία επέκτασης είναι ζωτικής σημασίας για την ομαλή λειτουργία των προγραμμάτων των Windows στη συσκευή σας, καθώς είναι υπεύθυνα για την ενεργοποίηση και εκτέλεση διαφόρων λειτουργιών στο πρόγραμμα, όπως η εγγραφή και η ανάγνωση αρχείων, η σύνδεση με άλλες συσκευές που είναι εξωτερικές στην εγκατάσταση σας. Ωστόσο, αυτά τα Αρχεία μπορούν να ανοίξουν μόνο σε μια συσκευή που υποστηρίζει οποιαδήποτε έκδοση των Windows (windows 7/windows 10/κ.λπ.) και ως εκ τούτου δεν μπορούν να ανοίξουν απευθείας σε μια συσκευή που υποστηρίζει Mac OS. (Εάν θέλετε να ανοίξετε ένα αρχείο DLL σε Mac OS, διάφορες εξωτερικές εφαρμογές μπορούν να βοηθήσουν στο άνοιγμα τους.)
Μορφή αρχείου DLL
Το αρχείο DLL αναπτύχθηκε από τη Microsoft και έχει την επέκταση “.dll” που αντιπροσωπεύει τον τύπο. Αποτελούσε αναπόσπαστο μέρος του διακομιστή Windows 1.0 και όχι μόνο. Είναι δυαδικός τύπος αρχείου και υποστηρίζεται από όλες τις εκδόσεις των Microsoft Windows. Αυτός ο τύπος αρχείου δημιουργήθηκε ως μέσο για τη δημιουργία ενός συστήματος κοινόχρηστης βιβλιοθήκης στα προγράμματα των Windows, για να επιτραπεί ξεχωριστές και ανεξάρτητες επεξεργασίες ή αλλαγές στις βιβλιοθήκες προγραμμάτων χωρίς την ανάγκη επανασύνδεσης των προγραμμάτων.
Παράδειγμα DLL
Παράδειγμα κώδικα για ένα σημείο εισόδου DLL μπορείτε να βρείτε παρακάτω:
BOOL APIENTRY DllMain(
HANDLE hModule,// Handle to DLL module
DWORD ul_reason_for_call,// Reason for calling function
LPVOID lpReserved ) // Reserved
{
switch ( ul_reason_for_call )
{
case DLL_PROCESS_ATTACHED: // A process is loading the DLL.
break;
case DLL_THREAD_ATTACHED: // A process is creating a new thread.
break;
case DLL_THREAD_DETACH: // A thread exits normally.
break;
case DLL_PROCESS_DETACH: // A process unloads the DLL.
break;
}
return TRUE;
}