2010-10-22 14 views
11

जब मैं स्टैक ओवरफ्लो पर डीएलएल के बारे में पढ़ रहा था, तो मैं कई बार "मूल डीएलएल" शब्द में आया था। मुझे उनके बारे में प्रश्न मिल गए लेकिन मुझे समझ में नहीं आया कि वास्तव में "मूल डीएलएल" क्या है।मूल डीएलएल क्या हैं?

मूल डीएलएल क्या है?

उत्तर

15

मूल डीएलएल आमतौर पर डीएलएल के कच्चे प्रोसेसर सीधे निष्पादन योग्य कोड (जैसे कि Win32 एपीआई में पाया जाता है) के विपरीत होता है, उदाहरण के लिए, प्रबंधित (एमएसआईएल) जिसमें उपभोग किया गया कोड होता है और जेआईटी देशी प्रोसेसर निर्देशों में संकलित होता है .NET CLR जैसे रनटाइम द्वारा।

.NET में मिश्रित-मोड DLL बनाने के लिए भी संभव है जिसमें मूल बाइनरी कोड और प्रबंधित कोड दोनों शामिल हों।

+2

उन्हें "मूल" कहा जाता है क्योंकि उनमें शामिल कोड सिस्टम के प्रोसेसर के लिए "मूल" है, कोई अनुवाद आवश्यक नहीं है। – Bevan

+1

@bevan - क्या मैंने अभी कहा नहीं है? – Kev

+0

मैंने सोचा था कि आप छोड़ देंगे कि "मूल" डीएलएल की मेजबानी प्रणाली के सापेक्ष है। फिर से पढ़ने पर, शायद मैं गलत था। – Bevan

2

जो मैं समझता हूं उससे "मूल डीएलएल" मूलभूत Win32 डीएल होगा उदाहरण के लिए। एक डीएलएल जिसमें गैर प्रबंधित कोड होता है।

.NET के साथ आप प्रबंधित असेंबली लिखते हैं। ये बेस लेवल विंडोज कोड को कॉल करेंगे जो एक गैर-प्रबंधित एप्लिकेशन कॉल करेगा।

4

यह शब्द तब सामने आया जब प्रबंधित और अप्रबंधित = देशी कोड के बीच अंतर करने के लिए .NET असेंबली से प्रबंधित प्रबंधित कोड का आविष्कार किया गया था। प्रत्येक .NET असेंबली निष्पादन के दौरान जेआईटी-कंपाइलर द्वारा "nativied" हो जाता है। इसका मतलब है कि इसे एएसएम कोड में अनुवादित किया जाता है जो सीपीयू के लिए "मूल रूप से" समझ में आता है।

2

इन MSDN खोज परिणामों पर एक संक्षिप्त दृष्टि आपके प्रश्न का उत्तर देगा:

http://social.msdn.microsoft.com/Search/en-US?query=define:%20native%20dll&ac=8

यह आसान एक DLL कि, मशीन कोड होता है बल्कि MSIL से है।

+6

मजेदार, आप इस पोस्ट को संख्या 1 मैच के रूप में असाधारण रूप से लक्षित करते हैं। यह अंतहीन पुनरावृत्ति एक हो सकता है ... ढेर अतिप्रवाह ;-) –

+0

एलओएल यह बस हो सकता है;) – IamIC

3

देशी डीएलएल शब्द मूल रूप से प्रबंधित कोड से पहले उपयोग किया गया था। इसका मूल रूप से डीएलएल का उल्लेख करना था जो COM DLL नहीं हैं। इसका उद्देश्य मूल रूप से विंडोज़ में डीएलएल को संदर्भित करना है।

ध्यान दें कि केवी ने कहा ".NET में मिश्रित मोड डीएलएल बनाने के लिए भी संभव है जिसमें देशी बाइनरी कोड और प्रबंधित कोड दोनों हों।" लेकिन यह प्रासंगिक नहीं है; ऐसा डीएलएल देशी डीएलएल नहीं है क्योंकि इसमें सीएलआई (नेट) मेटाडाटा है। इसके अलावा, मिश्रित मोड डीएलएल केवल सी ++/सीएलआई का उपयोग करके विकसित किया जा सकता है; कोई अन्य भाषा इसका समर्थन नहीं करती है।

अधिक जानकारी के लिए मेरा आलेख Native Windows Dynamic Link Libraries (DLLs) देखें।

संबंधित मुद्दे