क्या CComBSTR का एक बफर संस्करण है जो स्ट्रिंग कॉन्सटेनेशन को और अधिक कुशल बनाता है? - स्ट्रिंग, winapi, concatenation

मेरे पास कई परियोजनाएं हैं जहां मुझे संलग्न करने की आवश्यकता हैBSTR / CComBSTR / _bstr_t ऑब्जेक्ट (उदा। एक गतिशील SQL स्टेटमेंट का निर्माण) के लिए तार। क्या WinAPI में आउट-ऑफ-द-बॉक्स प्रकार है (जैसे .NET में StringBuilder) बफर करने के लिए, या क्या मुझे अपना खुद का लिखना है? अपेंडिक्स के तरीकों के बारे में मुझे जो पता है, उससे वे फिर से आवंटन करते हैं।

उत्तर:

जवाब के लिए 2 № 1

BSTR को एक CString में कॉपी करें, वहां सभी संशोधन करें और फिर इसे BSTR / CComBSTR में कॉपी करें। CString का आवंटन SysAllocStringLen से अधिक तेज़ है।


जवाब के लिए 2 № 2

आपको अपना खुद का लिखना होगा।आप अलग-अलग आकार के बफ़र्स प्राप्त करने के लिए SysAllocStringLen, या SysReallocString API का उपयोग कर सकते हैं। वे एक इनपुट स्ट्रिंग पर काम करते हैं, लेकिन आप NULL को एक निश्चित आकार, बिना किसी बफर के आवंटित कर सकते हैं।


संबंधित सवाल
सबसे लोकप्रिय