2013-02-06 13 views
7

मैंने एक कंपनी के लिए एक कार्यक्रम लिखा है। वे स्रोत कोड चाहते हैं।ग्राहक को आंशिक स्रोत कोड जारी करना

प्रोग्राम कोड है कि मैं ग्राहकों के एक नंबर के लिए कई परियोजनाओं के लिए समय के साथ लिखा है उपयोग करता है।

मैं केवल कोड है कि इस कार्यक्रम के द्वारा किया जाता है जारी करने के लिए चाहते हैं। इसलिए यदि Utils.pas नामक एक साझा फ़ाइल में दस कार्य होते हैं और यह प्रोग्राम उनमें से केवल दो का उपयोग करता है तो मैं केवल उन दो कार्यों के साथ Utils.pas नामक एक फ़ाइल को रिलीज़ करना चाहता हूं।

कोड बोर्लेन्ड पास्कल, डेल्फी का उपयोग कर लिखा है।

कोई भी जानता है कि मैं यह कैसे कर सकता हूं?

स्पष्टीकरण: मैं लाइसेंस के बारे में पूछ नहीं कर रहा हूँ। मैं चाहता हूं कि ग्राहक के पास केवल स्रोत कोड हो जो उनके कार्यक्रम द्वारा उपयोग किया जाता है और कुछ भी नहीं।

+2

आप अपने मौजूदा फ़ाइल संरचना, आप हेवन 'के साथ ऐसा नहीं कर सकते हैं इसे पर्याप्त टुकड़ों में तोड़ दिया। यह सभी स्रोत फ़ाइलों को पकड़ने का एक खतरा है। – Blrfl

+0

यदि आपके द्वारा उत्पादित कोड "सामान्य पुस्तकालयों" का उपयोग करता है, तो आप अपने प्रोजेक्ट (ओं) के लिए .pas फ़ाइलों को क्यों प्रदान नहीं करते हैं, और आपके "सामान्य पुस्तकालयों" के लिए संकलित डीसीयू फ़ाइलों को क्यों प्रदान करते हैं? – LaKraven

+1

कुछ भी जो सभी ग्राहकों के लिए विशिष्ट है, इसे अपने स्वयं के घटक पैकेज में डाल दें, और उन्हें स्रोत के बिना केवल बीपीएल प्रदान करें। फिर, शेष स्रोत ग्राहक-विशिष्ट होगा। हालांकि, अगर आपके पास एक ग्राहक के लिए विशिष्ट कोड है, जिसे आप एक विशिष्ट अन्य ग्राहक को देखना नहीं चाहते हैं, तो आपको प्रत्येक ग्राहक के कोड के लिए बीपीएल भी तैयार करना होगा। यह अभी भी एक बड़ा काम है, और मैं आपको शुभकामनाएं देता हूं। –

उत्तर

2
utils.pas से बाहर उनके कोड तोड़

, client_xxxx_utils.pas में। काम करने के लिए उन्हें अपनी सामान्य दर चार्ज करें, पुनर्निर्माण, धूम्रपान परीक्षण, आदि .. समस्या हल हो गई है।

ठीक है, अगर यह पता लगाने के लिए एक गलती है कि क्या ट्रिम करना है ... प्रोग्राम संकलित करें, और utils.pas इकाई देखें। आम तौर पर, आपके पास मार्जिन में ब्लू डॉट्स होंगे, जो दर्शाते हैं कि आप ब्रेक पॉइंट सेट कर सकते हैं। मार्जिन में "डेड कोड" में ब्लू डॉट्स नहीं होंगे, क्योंकि लिंकर द्वारा उस कोड को समाप्त कर दिया गया है। नीली डॉट के बिना कुछ भी, ऐसा कुछ है जिसे उनकी आवश्यकता नहीं है।

एक और अधिक स्वचालित दृष्टिकोण के लिए, शायद Peganza पास्कल विश्लेषक मृत कोड में की यह कई रिपोर्टों है की पहचान कर सकते हैं।

यहाँ अतः समान जवाब के साथ पर यहाँ कुछ संबंधित सवाल कर रहे हैं (मेरे द्वारा कुछ!)

Finding unused (aka "dead") code in Delphi

How to "automatically" remove unused units from uses clause?

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