मेरे पास काफी बड़ा सी ++ एप्लिकेशन है (विंडोज़ पर, कोई अन्य प्लेटफार्म योजनाबद्ध नहीं है), जो वर्तमान में विंडोज रजिस्ट्री में सभी सेटिंग्स (यहां तक कि कुछ प्रकार के पते) स्टोर करता है।सेटिंग्स संग्रहीत करने के लिए सर्वोत्तम अभ्यास
कभी-कभी यह असुविधाजनक होता है, क्योंकि उपयोगकर्ताओं को रजिस्ट्री में प्रविष्टियों को बदलने में कठिनाइयां होती हैं। मैं सेटिंग संस्करण स्थापित करना चाहता हूं, इसलिए सेटिंग्स हमेशा मौजूदा कोड से मेल खाते हैं। फिलहाल हम संस्करण reg-files, लेकिन आप कभी भी सुनिश्चित नहीं हैं, अगर लक्ष्य मशीनों पर सभी reg-files को जोड़ा गया है। सी # के साथ आप app.config में डिफ़ॉल्ट मान परिभाषित कर सकते हैं, लेकिन मौजूदा सेटिंग्स को ओवरराइट नहीं करते हैं। मुझे नहीं पता, अगर सी ++ के लिए ऐसी कोई तंत्र या पुस्तकालय मौजूद है।
मैं निम्नलिखित "सुविधाओं" करना चाहते हैं:
- सेटिंग्स (उपयोगकर्ता द्वारा किया जा सकता) लक्ष्य मशीनों पर संस्करणीकृत जा सकती है
- सरल अद्यतन
- सुनिश्चित करें कि अद्यतन पर केवल नई सेटिंग जोड़ रहे हैं और कोई मौजूदा सेटिंग को डिफ़ॉल्ट मानों के साथ ओवरराइट कर रहे हैं उपयोगकर्ता के लिए सेटिंग की
- सरल परिवर्तन विन XP और विन के तहत
- एक ही कार्यप्रवाह 7
जहाँ तक मुझे यह देखने के रूप में, वहाँ विंडोज पर सेटिंग्स को संग्रहीत करने के लिए 3 संभावनाएं हैं:
- रजिस्ट्री
- INI फ़ाइल
- एक्सएमएल फ़ाइल के
केवल एक आवेदन हमारे सूट इस समय क्यूटी का उपयोग करता है, लेकिन बूस्ट उपलब्ध होगा।
पते के लिए, हम उन्हें किसी प्रकार की एक्सएमएल एड्रेस बुक में डाल देंगे, लेकिन अन्य सेटिंग्स के लिए हमें यकीन नहीं है कि सबसे अच्छा अभ्यास क्या है।
पूछो मैं अन्य विकल्पों का सुझाव देते हैं: मानव के लिए YAML/JSON -डेबल प्रारूप, सरल एम्बेडेड के लिए SQLite। 'Ini' फ़ाइलों के संबंध में, आपको रुचि हो सकती है [बूस्ट के साथ आईएनआई फ़ाइल को कैसे पार्स करें] (http://stackoverflow.com/questions/6175502/how-to-parse-ini-file-with-boost)। Boost/ini फ़ाइलों के लिए –
+1, यदि आप एसआई को कर सकते हैं। – DevSolar
यदि आपको समावेशन की कई परतों की आवश्यकता है, तो मैं एक्सएमएल/जेएसओएन फाइलों के लिए जाऊंगा। अन्यथा, आईएनआई सबसे सरल समाधान हो सकता है। JSON या .ini के लिए – Morwenn