ओरेगॉनहोस्ट का जवाब केवल तभी सही है जब गेटडिर से लौटा गया चार या तो एचजीएलओबल या लोकलएलोक में आवंटित किया गया हो। मुझे याद नहीं है कि कौन सी सीएलआर मान लेगी कि पीएनवोक फ़ंक्शन से किसी भी स्ट्रिंग रिटर्न प्रकार को एक या दूसरे के साथ आवंटित किया गया था।
गेटडियर की वापसी IntPtr होने की वापसी का एक और मजबूत तरीका है। फिर आप एक स्ट्रिंग प्रकार प्राप्त करने के लिए किसी भी मार्शल.PtrToStringAnsi फ़ंक्शंस का उपयोग कर सकते हैं। यह आपको अपनी पसंद के तरीके में स्ट्रिंग को मुक्त करने की वांछितता भी देता है।
[DllImport("your.dll", CharSet = CharSet.Ansi)]
IntPtr GetDir(StringBuilder path);
क्या आप हमें गेटडियर के व्यवहार के रूप में कोई अन्य संकेत दे सकते हैं? क्या यह इनपुट स्ट्रिंग को संशोधित करता है? आवंटित मूल्य कैसे आवंटित किया जाता है? यदि आप प्रदान कर सकते हैं कि मैं एक बेहतर जवाब दे सकता हूं।
अह्ह्ह .... PtrToStringAnsi वह था जो मैं खोज रहा था, मुझे इस दौरान IntPtr का उपयोग करने के लिए पता चला था, लेकिन अब मैं एक स्नैग में चला गया ... मैं .NETCF और PtrToStringAnsi का उपयोग कर रहा हूं केवल पूर्ण ढांचे में :( –
यह पता चला है कि OpenNetCF में PtrToStringAnsi है .... समस्या हल हो गई है। जैसे ही मैं कोड का परीक्षण कर सकता हूं, इसे स्वीकार कर लिया जाएगा। –
क्या .NET स्वचालित रूप से इनपुट पैरामीटर के लिए स्ट्रिंगबिल्डर को char * पर मार्शल करने के लिए जानता है या था काम करने के लिए कुछ तीसरे पक्ष पुस्तकालय की आवश्यकता है? धन्यवाद। – kmehta