मैं एक विधि मुझे DLL से आयात करना चाहते हैं और इसके बारे में एक हस्ताक्षर है:DllImport और चार *
BOOL GetDriveLetter(OUT char* DriveLetter)
मैं
[DllImport("mydll.dll")]
public static extern bool GetDriveLetter(byte[] DriveLetter);
और
[DllImport("mydll.dll")]
public static extern bool GetDriveLetter(StringBuilder DriveLetter);
की कोशिश की है
लेकिन ड्राइव लिटर चर में कुछ भी नहीं लौटा।
UnmanagedType.I1 का क्या अर्थ है? – Malfist
@ माफिस्ट, मान I1 सीएलआर को 1 बाइट पूर्णांक के रूप में मान को मार्शल करने के लिए कहता है। यह वास्तव में इस नमूने में गलत था क्योंकि I4 सही मान है (थोड़ा पहले अपडेट किया गया था)। इस ब्लॉग एंट्री की जांच क्यों करें मैंने मार्शलिंग बूल वैल्यू पर लिखा था: http://blogs.msdn.com/jaredpar/archive/2008/10/14/pinvoke-and-bool-or-should-i-say-bool .aspx – JaredPar
जब मैं इसे I4 बना देता हूं, तो मुझे मार्शल डायरेक्टिव एक्सेप्शन – Malfist