2010-04-04 13 views
34

मैं बूस्ट :: सीआरसी का उपयोग करना चाहता हूं ताकि यह PHP's crc32() फ़ंक्शन की तरह काम करे। मैंने horrible documentation पढ़ने की कोशिश की और बाद में कई सिरदर्द मैंने कोई प्रगति नहीं की है।बूस्ट :: सीआरसी का उपयोग कैसे करें?

जाहिर है मैं की तरह कुछ करना है:

int GetCrc32(const string& my_string) { 
    return crc_32 = boost::crc<bits, TruncPoly, InitRem, FinalXor, 
        ReflectIn, ReflectRem>(my_string.c_str(), my_string.length()); 
} 

bits 32 होना चाहिए .. क्या अन्य बातें हैं एक रहस्य है। एक छोटा सा सहयोग? ;)

+0

आप भी इस का उपयोग कर सकते http://svn.abisource.com/: सिर दर्द), लेकिन जब मैं यह कर रहा हूँ पर मैं एक प्रति & पेस्ट भविष्य Googler के लिए मेरे सवाल में समारोह के लिए समाधान प्रदान करने के लिए करना चाहता था डब्ल्यूवी/शाखाएं/रिलीज-संस्करण -0-7-12/सीआरसी 32 सी और http://svn.abisource.com/wv/branches/release-version-0-7-1 2/crc32.h। मुझे लगता है कि एल्गोरिदम एक जैसा है लेकिन गति सीआरसी की तुलना में गति बेहतर है। – schoetbi

उत्तर

51

दान कहानी और (अच्छा जवाब प्रदान की ergosys जाहिरा तौर पर मैं गलत जगह में देख रहा था, इसका कारण यही है

int GetCrc32(const string& my_string) { 
    boost::crc_32_type result; 
    result.process_bytes(my_string.data(), my_string.length()); 
    return result.checksum(); 
} 
9

शायद आप क्रैक टेम्पलेट का उपयोग करने के बजाय crc_32_type का उपयोग करना चाहते हैं। टेम्पलेट सामान्य है और व्यापक रूप से भिन्न पैरामीटर का उपयोग करके सीआरसी डिज़ाइन की एक विस्तृत श्रृंखला को समायोजित करने के लिए है, लेकिन वे सीआरसी 16, सीसीआईटीटी, एक्सएमओडीईएम और सीआरसी 32 को कवर करने वाले सामान्य उपयोग के लिए चार अंतर्निर्मित पूर्व-कॉन्फ़िगर किए गए सीआरसी प्रकारों को शिप करते हैं।

4

क्या आपने पूर्वनिर्धारित crc_32_type का उपयोग करने का प्रयास किया है?

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