बीपीएल बनाम डेल्फी प्रोग्रामिंग अनुप्रयोगों में डीएलएल

जब हम डेल्फी एप्लिकेशन को लिखते और संकलित करते हैं, तो हम आम तौर पर एक निष्पादन योग्य फ़ाइल उत्पन्न करते हैं - एक स्टैंडअलोन विंडोज एप्लीकेशन। उदाहरण के लिए, Visual Basic के विपरीत, डेल्फी का उत्पादन करता है अनुप्रयोगों के लिए कॉम्पैक्ट exe फ़ाइलों में लिपटे, भारी क्रम पुस्तकालयों (DLL) की कोई आवश्यकता नहीं है।

इसे आज़माएं: डेल्फी शुरू करें और उस डिफ़ॉल्ट प्रोजेक्ट को एक रिक्त रूप में संकलित करें, इससे लगभग 385 KB (डेल्फी 2006) की एक निष्पादन योग्य फ़ाइल का उत्पादन होगा। अब प्रोजेक्ट - विकल्प - पैकेज पर जाएं और 'बिल्ड विद रनटाइम पैकेज' चेक बॉक्स को चेक करें। संकलित करें और चलाएं। Voila, exe का आकार अब लगभग 18 KB है।

डिफ़ॉल्ट रूप से 'बिल्ड विद रनटाइम पैकेज' अनियंत्रित होता है और हर बार जब हम डेल्फी एप्लिकेशन बनाते हैं, तो कंपाइलर आपके एप्लिकेशन को आपके द्वारा सीधे चलाने के लिए आवश्यक सभी कोड लिंक करता है एप्लिकेशन की निष्पादन योग्य फ़ाइल. आपका आवेदन एक स्टैंडअलोन प्रोग्राम है और इसके लिए किसी भी सहायक फाइल (जैसे DLL) की आवश्यकता नहीं है - यही कारण है कि डेल्फी एक्सई इतने बड़े हैं।

बनाने का एक तरीका छोटे डेल्फी कार्यक्रम 'बोरलैंड पैकेज लाइब्रेरीज़' या बीपीएल की कमी का फायदा उठाना है।

instagram viewer

पैकेज क्या है?

डेल्फी अनुप्रयोगों द्वारा प्रयुक्त विशेष गतिशील-लिंक लाइब्रेरी

पैकेज हमें अपने एप्लिकेशन के कुछ हिस्सों को अलग-अलग मॉड्यूल में रखने में सक्षम बनाते हैं जिन्हें कई अनुप्रयोगों में साझा किया जा सकता है। पैकेज, डेल्फी के VCL पैलेट में घटकों (कस्टम) को स्थापित करने का एक साधन भी प्रदान करते हैं।

इसलिए, मूल रूप से डेल्फी द्वारा दो प्रकार के पैकेज बनाए जा सकते हैं:

  • रन-टाइम पैकेज - जब उपयोगकर्ता किसी एप्लिकेशन को चलाता है तो कार्यक्षमता प्रदान करता है - वे मानक DLL की तरह काम करते हैं।
  • डिज़ाइन-टाइम पैकेज - में घटक स्थापित करने के लिए उपयोग किया जाता है डेल्फी आईडीई और कस्टम घटकों के लिए विशेष संपत्ति संपादक बनाने के लिए।
डिजाइन पैकेज

इस बिंदु से यह आलेख रन-टाइम पैकेज से निपटेगा और वे डेल्फी प्रोग्रामर की मदद कैसे कर सकते हैं।

एक गलत मित: आप एक होना आवश्यक नहीं है डेल्फी घटक डेवलपर पैकेज का लाभ उठाने के लिए शुरुआती डेल्फी प्रोग्रामर्स को पैकेज के साथ काम करने की कोशिश करनी चाहिए - वे बेहतर समझ पाएंगे कि पैकेज और डेल्फी कैसे काम करते हैं।

कब और कब नहीं ओ.टी. उपयोग पैकेज

DLL को आमतौर पर प्रक्रियाओं और कार्यों के संग्रह के रूप में उपयोग किया जाता है जिसे अन्य प्रोग्राम कॉल कर सकते हैं। कस्टम रूटीन के साथ DLL लिखने के अलावा, हम एक DLL में एक पूर्ण डेल्फी फॉर्म रख सकते हैं (उदाहरण के लिए एक AboutBox फॉर्म)। एक अन्य सामान्य तकनीक DLL में संसाधनों के अलावा कुछ भी नहीं रखना है। डेल्फी डीएलएल के साथ कैसे संचालित होता है, इस बारे में अधिक जानकारी इस लेख में दी गई है: DLL और डेल्फी.

डीएलएल और बीपीएल के बीच तुलना करने से पहले हमें कोड को एक निष्पादन योग्य में दो तरीकों से समझना होगा: स्थिर और गतिशील।

स्टेटिक लिंकिंग इसका मतलब है कि जब एक डेल्फी प्रोजेक्ट संकलित किया जाता है, तो आपके आवेदन की आवश्यकता वाले सभी कोड सीधे आपके एप्लिकेशन की निष्पादन योग्य फ़ाइल में लिंक हो जाते हैं। परिणामी exe फ़ाइल में उन सभी इकाइयों के सभी कोड शामिल हैं जो एक परियोजना में शामिल हैं। बहुत कोड, आप कह सकते हैं। डिफ़ॉल्ट रूप से, 5 से अधिक इकाइयों (विंडोज, संदेश, SysUtils, ...) के लिए एक नई फॉर्म यूनिट सूची के लिए क्लॉज का उपयोग करता है। हालाँकि, डेल्फी लिंकर केवल एक परियोजना द्वारा उपयोग की जाने वाली इकाइयों में न्यूनतम कोड को जोड़ने के लिए पर्याप्त स्मार्ट है। स्टेटिक लिंकिंग के साथ हमारा एप्लिकेशन एक स्टैंडअलोन प्रोग्राम है और इसके लिए किसी भी तरह के सपोर्टिंग पैकेज या DLL (BDE और ActiveX घटकों को न भूलें) की आवश्यकता होती है। डेल्फी में, स्थैतिक लिंकिंग डिफ़ॉल्ट है।

गतिशील लिंकिंग मानक DLL के साथ काम करने जैसा है। यानी डायनेमिक लिंकिंग कई को कार्यक्षमता प्रदान करता है प्रत्येक एप्लिकेशन को सीधे कोड को बांधने के बिना आवेदन - किसी भी आवश्यक पैकेज को लोड किया जाता है क्रम। डायनामिक लिंकिंग के बारे में सबसे बड़ी बात यह है कि आपके एप्लिकेशन द्वारा पैकेज लोड करना स्वचालित है। आपको पैकेज लोड करने के लिए कोड लिखने की जरूरत नहीं है और न ही आपको अपना कोड बदलना है।

प्रोजेक्ट पर पाए जाने वाले 'बिल्ड विद रनटाइम पैकेज' चेक बॉक्स को चेक करें विकल्प संवाद बॉक्स। अगली बार जब आप अपना एप्लिकेशन बनाते हैं, तो आपके प्रोजेक्ट का कोड डायनामिक रूप से रनटाइम पैकेज से जुड़ा होगा बजाय यूनिट्स को आपके एक्जीक्यूटिव फाइल में स्टेटिकली लिंक करने के बजाय।

instagram story viewer