आसान तरीका एक पैकेज से कार्यों का उपयोग करने के लिए इकाई समारोह, जिसमें "का उपयोग करें", हमेशा की तरह यह कहते हैं, और अपनी परियोजना के क्रम पैकेजों की सूची पर पैकेज डाल है। इसके लिए काम करने के लिए, कुछ आवश्यकताएं हैं:
- आपकी परियोजना को उसी डेल्फी संस्करण का उपयोग करना चाहिए जैसा कि पैकेज को संकलित करने के लिए उपयोग किया गया था।
- आप इकाई के लिए DCU फ़ाइल के लिए उपयोग किया जाना चाहिए, या कम से कम डीसीपी पैकेज के लिए फ़ाइल।
- जब आपका प्रोग्राम शुरू होता है तो पैकेज ऑपरेटिंग सिस्टम के खोज पथ में मौजूद होना चाहिए।
यदि आप तीसरी आवश्यकता को पूरा नहीं कर सकते हैं, या यदि आप पैकेज को हर समय लोड नहीं करना चाहते हैं, तो आप इसके बजाय LoadPackage
पर कॉल कर सकते हैं। उस काम को करने का तरीका एक और पैकेज है जो हर समय लोड होता है। इसका उपयोग आपके प्रोजेक्ट और पैकेज दोनों द्वारा किया जाएगा जो आप लोड करना चाहते हैं। इंटरमीडिएट पैकेज एक इंटरफ़ेस का खुलासा करेगा (जैसे कुछ पंजीकरण फ़ंक्शंस, एक वेरिएबल, या क्लास) कि मुख्य पैकेज एप्लिकेशन को यह बताने के लिए उपयोग कर सकता है कि उसके कार्य क्या हैं। आप सीधे अपने आवेदन में मुख्य पैकेज की इकाई का "उपयोग" करने में सक्षम नहीं होंगे।
यदि आप पहली दो आवश्यकताओं को पूरा नहीं कर सकते हैं, तो वहां बहुत कठिन तरीका है, जो आपको डेल्फी या सी ++ बिल्डर में लिखा नहीं गया है, तो आपको भी क्या करना होगा। पैकेज को सामान्य डीएलएल की तरह व्यवहार करें। इसे LoadLibrary
के साथ लोड करें। GetProcAddress
का उपयोग अपने Initialize
फ़ंक्शन को लोड करने के लिए करें, और उसके बाद इसे कॉल करें। (याद रखें कि कॉलिंग सम्मेलन register
है, stdcall
नहीं।) फिर उस फ़ंक्शन का पता लोड करें जिसे आप कॉल करना चाहते हैं, ध्यान रखें कि फ़ंक्शन का नाम कुछ इकाई और प्रकार की जानकारी शामिल करने के लिए उलझा हुआ है। FreeLibrary
पर कॉल करने से पहले Finalize
फ़ंक्शन पर कॉल करें। LoadPackage
और UnloadPackage
के लिए स्रोत देखें; चाहे आपको CheckForDuplicateUnits
पर कॉल करने की आवश्यकता हो, इस पर निर्भर करता है कि आप आवश्यकता संख्या को संतुष्ट कर सकते हैं या नहीं।
स्रोत
2009-09-08 15:39:40
किसी भी तरह से आप इसे करने के लिए संसाधन के लिए मुझे इंगित कर सकते हैं? मैं वास्तव में डेल्फी प्रोग्रामर नहीं हूं, इसलिए मुझे कुछ सामानों के लिए नुकसान हुआ है। – Dan
मुझे अंतिम पैराग्राफ में उल्लिखित तरीके से संकुल को "मैन्युअल रूप से" लोड करने के तरीके का वर्णन करने वाले किसी भी संसाधन से अवगत नहीं है। अंतिम पैराग्राफ में वर्णित संकुल का उपयोग करने का सामान्य तरीका कुछ है जो मुझे डेल्फी सहायता में दिखाई देने की उम्मीद है, हालांकि मैं इसे स्वयं नहीं देख सकता क्योंकि मेरे पास कहीं भी डेल्फी इंस्टॉल नहीं है। –