2009-11-01 9 views
5

मैं अपनी बाइनरी (जैसे विंडोज संसाधन प्रणाली) में टेक्स्ट फ़ाइलों को एम्बेड करने का एक तरीका ढूंढ रहा हूं। मुझे कुछ ऐसा प्लेटफॉर्म स्वतंत्र है (विंडोज़ और लिनक्स में काम करता है)। मुझे क्यूटी संसाधन प्रबंधन मिला जो मुझे चाहिए लेकिन मैं अकेले इस क्यूटी के आधार पर अपने ऐप पर उत्सुक नहीं हूं। मुझे यह टूल http://www.taniwha.com/~paul/res/ पर भी मिला .. लेकिन यह बहुत मंच विशिष्ट है।प्लेटफ़ॉर्म स्वतंत्र संसाधन प्रबंधन

+0

[जीसीसी का उपयोग कर निष्पादन योग्य में संसाधनों को एम्बेड करना] (https://stackoverflow.com/questions/4158900/embedding-resources-in-executable-using-gcc) – user

उत्तर

1

यदि आप क्यूटी 4.5 का उपयोग कर रहे हैं, तो आप यह सुनिश्चित कर सकते हैं कि प्रोग्राम केवल क्यूटी के एक छोटे टुकड़े पर निर्भर है, जैसे libqtcore। QResource libqtcore का एक हिस्सा है।

0

यह इतना अच्छा विचार नहीं है। लिनक्स पर, उदाहरण के लिए, डेटा "$ डेटाडाइर" की उपनिर्देशिका में स्थापित होने की उम्मीद है, जिसे डिफ़ॉल्ट रूप से "$ prefix/share" कहा जाता है, जहां "$ prefix" अधिष्ठापन उपसर्ग है। मैक ओएस एक्स पर, संसाधनों को $ appbundle/सामग्री/संसाधनों में स्थापित होने की उम्मीद है, जहां $ appbundle ".app" में समाप्त होने वाले फ़ोल्डर का नाम है। विंडोज़ पर, निष्पादन योग्य के एक समूह में एक फ़ोल्डर में डेटा स्थापित करना एक असामान्य अभ्यास नहीं है। आप CMake बिल्ड सिस्टम का उपयोग करके और डिफ़ॉल्ट, पसंदीदा प्लेटफ़ॉर्म-विशिष्ट तरीके से इंस्टॉल/बंडल करने के लिए CPack पैकेजिंग सुविधाओं का उपयोग करके बेहतर हो सकते हैं।

हालांकि आपके संसाधनों को निष्पादन योग्य में स्वयं को बंडल करना अच्छा लगता है, यह वास्तव में एक खतरनाक विचार है ... उदाहरण के लिए, एम्बेडेड डेटा निष्पादन योग्य पृष्ठ में आवंटित किया जाएगा? यदि आप डेटा को ओवरराइट या संशोधित करने का प्रयास करते हैं तो क्या होगा? यदि आप रनटाइम पर डेटा को ट्विक या संशोधित करना चाहते हैं तो क्या होगा? के बारे में सोचने के लिए चीजें।

3

xxd उपयोगिता का उपयोग सी स्रोत फ़ाइल बनाने के लिए किया जा सकता है, जिसमें आपके बाइनरी ब्लब्स को सरणी के रूप में शामिल किया गया है (-i कमांड लाइन विकल्प के साथ)। आप उस वस्तु को संकलित कर सकते हैं जो आपके निष्पादन योग्य में जुड़ा हुआ है।

xxd अधिकांश प्लेटफ़ॉर्म पर पोर्टेबल होना चाहिए।

+0

आपका मतलब था 'xxd -i'? – ephemient

+0

आह हाँ, आप सही हैं। – caf

0

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

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

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