c++ cli - Is it possible to get a pointer to String^'s internal array in C++/CLI? -


लक्ष्य जब मैं const wchar_t * की आवश्यकता होती है तो स्ट्रिंग डेटा की प्रतिलिपि से बचने के लिए है।

जवाब हाँ लगता है, लेकिन फ़ंक्शन के पास अपनी MSDN प्रविष्टि नहीं है (यह केवल KB और ब्लॉग में एक चाल के रूप में उल्लिखित है)। इससे मुझे शक हो गया और मैं तुम्हारे साथ लोगों को देखना चाहता हूं क्या उस फ़ंक्शन का उपयोग करना सुरक्षित है?

हां, कोई समस्या नहीं है। यह वास्तव में कुछ हद तक मुश्किल है लेकिन मिलना मुश्किल है सी ++ लाइब्रेरीज़ के लिए MSDN दस्तावेज़ महान नहीं हैं I यह एक आंतरिक सूचक देता है, जो कि कॉन्स्ट wchar_t * के रूपांतरण के लिए उपयुक्त नहीं है I आपको पॉइंटर को पिन करना होगा ताकि कचरा कलेक्टर स्ट्रिंग को स्थानांतरित नहीं कर सके। ऐसा करने के लिए pin_ptr & lt;> का उपयोग करें।

आप स्ट्रिंग की एक प्रतिलिपि बनाने के लिए मार्शल :: स्ट्रिंगटौहोग्लोबलयूनी () का उपयोग कर सकते हैं। उस जगह का उपयोग करें यदि wchar_t * को समय की एक विस्तारित अवधि के लिए वैध रहने की आवश्यकता है। पेइंग ऑब्जेक्ट्स बहुत लंबे समय तक कचरा कलेक्टर के लिए बहुत स्वस्थ नहीं हैं।


Comments

Popular posts from this blog

windows - Heroku throws SQLITE3 Read only exception -

lex - Building a lexical Analyzer in Java -

python - rename keys in a dictionary -