मेरे पास एक बाहरी विधि है जो कुछ पैरामीटर प्राप्त करती है, स्मृति आवंटित करती है और एक सूचक देता है।'अप्रबंधित' सूचक को कैसे पिन करें?
[DllImport("some.dll", CallingConvention = CvInvoke.CvCallingConvention)]
public static extern IntPtr cvCreateHeader(
Size size,
int a,
int b);
मुझे अच्छी तरह पता है कि यह खराब व्यवहार का एक प्रबंधित आवेदन में अप्रबंधित स्मृति को आबंटित करने के लिए है हूँ लेकिन इस मामले में मैं dll के रूप में कोई विकल्प नहीं 3 पार्टी है।
एक बराबर समारोह है कि स्मृति विज्ञप्ति नहीं है और मैं आवंटित सरणी के आकार है क्या जानते हो।
- मैं लौटा हुआ सूचक कैसे पिन करूं ताकि जीसी इसे स्थानांतरित न करे (असुरक्षित होने के बिना)? 'निश्चित' ऐसा नहीं करेगा क्योंकि इस सूचक का व्यापक रूप से कक्षा में उपयोग किया जाता है?
- क्या इस पी/आमंत्रण के लिए कोई बेहतर तरीका है?
एक अप्रबंधित सूचक क्यों स्थानांतरित होगा (आईओ परिवर्तन पता)? मुझे लगता है कि आपकी समझ गलत है। फिक्सिंग केवल उन्मूलन कोड में प्रबंधित वस्तुओं का उपयोग करते समय आवश्यक है। – leppie
जीसी अपने अनुकूलन (डीफ्रैग) ऑपरेशन में प्रबंधित ऑब्जेक्ट्स (पॉइंटर्स) चलाता है। – Gilad
ठीक है आप प्रबंधित पॉइंटर्स का उपयोग नहीं कर रहे हैं। – leppie