डीएलएल फ़ाइल क्या है?
DLL फ़ाइल या डायनेमिक लिंक लाइब्रेरी एक प्रकार की निष्पादन योग्य फ़ाइल है। यह आपके डिवाइस पर सबसे अधिक पाई जाने वाली एक्सटेंशन फ़ाइलों में से एक है और आमतौर पर आपके विंडोज पर System32 फ़ोल्डर में संग्रहीत होती है। DLL एक्सटेंशन फ़ाइल Microsoft द्वारा विकसित की गई थी और उनके द्वारा लोकप्रिय रूप से उपयोग की जाती है। इसकी उच्च लोकप्रियता उपयोगकर्ता रेटिंग है। डीएलएल एक शेल्फ के रूप में काम करता है जिसमें ड्राइवर/प्रक्रिया/फ़ंक्शंस/गुण शामिल होते हैं जिन्हें विंडोज़ सर्वर द्वारा प्रोग्राम/एप्लिकेशन के लिए डिज़ाइन और लागू किया जाता है। एक एकल DLL फ़ाइल को विभिन्न विंडोज़ प्रोग्रामों के बीच भी साझा किया जा सकता है। ये एक्सटेंशन फाइलें आपके डिवाइस पर विंडोज प्रोग्राम के सुचारू रूप से चलने के लिए महत्वपूर्ण हैं क्योंकि वे प्रोग्राम पर विभिन्न कार्यों को सक्षम करने और चलाने के लिए जिम्मेदार हैं जैसे कि फाइल लिखना और पढ़ना, अन्य उपकरणों से जुड़ना जो आपके सेटअप के लिए बाहरी हैं। हालाँकि इन फ़ाइलों को केवल उस डिवाइस पर खोला जा सकता है जो विंडोज के किसी भी संस्करण (विंडोज़ 7/विंडोज़ 10/आदि) का समर्थन करता है और इसलिए मैक ओएस का समर्थन करने वाले डिवाइस पर सीधे नहीं खोला जा सकता है। (यदि आप Mac OS पर DLL फ़ाइल खोलना चाहते हैं, तो विभिन्न बाहरी एप्लिकेशन उन्हें खोलने में सहायता कर सकते हैं।)
डीएलएल फ़ाइल स्वरूप
DLL फ़ाइल Microsoft द्वारा विकसित की गई थी और इसमें एक्सटेंशन “.dll” है जो प्रकार का प्रतिनिधित्व करता है। यह विंडोज 1.0 सर्वर और उसके बाद का एक अभिन्न हिस्सा रहा है। यह एक बाइनरी फ़ाइल प्रकार है और Microsoft Windows के सभी संस्करणों द्वारा समर्थित है। इस फ़ाइल प्रकार को प्रोग्राम को फिर से लिंक करने की आवश्यकता के बिना प्रोग्राम लाइब्रेरी में अलग और स्वतंत्र संपादन या परिवर्तन की अनुमति देने के लिए विंडोज प्रोग्राम के भीतर एक साझा लाइब्रेरी सिस्टम बनाने के साधन के रूप में बनाया गया था।
डीएलएल उदाहरण
डीएलएल प्रवेश बिंदु के लिए उदाहरण कोड नीचे पाया जा सकता है:
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;
}