मैं सी ++ msgpack कार्यान्वयन का उपयोग कर रहा हूं। मैंने बाइनरी डेटा को पैक करने के तरीके के बारे में एक रोडब्लॉक मारा है। एक सरणी जो वास्तव में एक छवि है करने के लिएmsgpack सी ++ कार्यान्वयन: बाइनरी डेटा कैसे पैक करें?
unsigned char* data;
डेटा चर अंक: बाइनरी डेटा के संदर्भ में मैं निम्नलिखित प्रकार के एक बफर है। मैं क्या करना चाहता हूं यह है msgstr "msgstr" msgstr " वास्तव में बाइनरी डेटा को पैक करने का कोई उदाहरण नहीं लगता है। format specification से कच्चे बाइट समर्थित हैं, लेकिन मुझे यकीन नहीं है कि कार्यक्षमता का उपयोग कैसे करें।
मैं निम्नलिखित की तरह चरित्र संकेत का एक वेक्टर उपयोग करने की कोशिश:
msgpack::sbuffer temp_sbuffer;
std::vector<char*> vec;
msgpack::pack(temp_sbuffer, vec);
लेकिन यह एक संकलक त्रुटि में परिणाम के बाद से वहाँ है टी = एसटीडी के लिए :: वेक्टर कोई समारोह टेम्पलेट।
msgpack::pack(temp_sbuffer, "Hello");
लेकिन यह भी एक संकलन त्रुटि में परिणाम है (यानी टी = स्थिरांक चार [6]
इस प्रकार के लिए कोई समारोह टेम्पलेट, मैं था:
मैं भी बस निम्नलिखित की कोशिश की है उम्मीद है कि कोई मुझे char सरणी के रूप में दर्शाए गए बाइनरी डेटा को पैक करने के लिए msgpack C++ का उपयोग करने के बारे में सलाह दे सकता है।
धन्यवाद जोश
यहाँ एक कोड मूल प्रश्न के आधार पर उदाहरण है। मैंने सोचा कि मैंने पहले ही यह कोशिश की है। दुर्भाग्यवश इस समाधान के साथ मुझे बाइट एरे से अनगिनत चार के वैक्टरों तक बहुत सारे बाइनरी डेटा (छवियों) की प्रतिलिपि बनाना है। साथ ही, मुझे पूरी तरह से यकीन नहीं है कि आपका संकलन क्यों करता है। जैसा कि मुझे कोई फ़ंक्शन नहीं दिखता है जो विशेष रूप से हस्ताक्षरित चार का समर्थन करता है। मैं स्रोत कोड में गहरी खुदाई करने जा रहा हूं और देख सकता हूं कि यह एक और अधिक प्रभावी तरीका है जिसे मैं कर सकता हूं (यानी प्रतिलिपि से परहेज करना)। – mdb841
इसके अलावा, यह इसे बाइनरी डेटा के बजाए वर्णों की एक सरणी के रूप में सहेज लेगा, जो कार्यान्वयन के अनुसार एक अलग प्रकार है ... –
बस इसे देखा: वेक्टर के बजाय वेक्टर का उपयोग करना प्रतीत होता है सरणी के बजाय बाइनरी प्रकार ... –