मुझे एक डीएल में निहित सी एपीआई से एक फ़ंक्शन कॉल करने की आवश्यकता है। समारोह प्रोटोटाइप के रूप में निम्नानुसारमंच के साथ मार्शल शून्य * कैसे करें
int func(char* name, void* value);
लग रहा है .... जहां सूचक मूल्य की सामग्री को किसी भी प्रकार से पारित कर दिया नाम पर निर्भर है देख सकते हैं। मुझे यह सुनिश्चित नहीं है कि इस शून्य * को सही ढंग से मार्शल करने के लिए डीएल इनपोर्ट कैसे सेट अप करें। Ihave IntPtr पर प्रयोग कर रहे काम करने के लिए whe मूल्य एक पूर्णांक है, लेकिन मैं तैरता आदि के लिए सही ढंग से मूल्यों प्राप्त नहीं कर सकता
मैं इस तरह समारोह आयात करने के लिए कोशिश कर रहा हूँ ...
[DllImport("dllname.dll", CharSet = CharSet.Ansi)]
public static extern int func(string name, ref IntPtr value);
कृपया ध्यान दें लगता है जो वह मान एक आउटपुट है। किसी भी प्रकार के मूल्य के लिए एक सूचक, यानी एक ज्ञात प्रकार (कॉलर को ज्ञात) के मूल्य की स्मृति के वैश्विक क्षेत्र में पता। एक सी प्रोजे में कॉलर से उम्मीद की जाएगी कि वांछित प्रकार और वांछित वांछित प्रकार को वहां वास्तविक मूल्य प्राप्त करने के लिए किया जाए। अब तक दिए गए उत्तरों को इस धारणा के आधार पर माना जाता है कि समारोह परिणामस्वरूप पॉइंटर स्थान पर परिणाम लिख देगा। मेरी गलती क्योंकि मैं बहुत विशिष्ट नहीं हूं। माफ़ कीजिये। सी # मेरा बैग नहीं है, और मैं यह भी नहीं जानता कि यदि IntPtr यहां जाने का रास्ता है ...
मुझे और अधिक विशिष्ट खेद होना चाहिए था। IntPtr मान एक आउटपुट है। इस फ़ंक्शन के मामले में यह किसी मान के लिए सूचक होगा जो कि किसी भी प्रकार का हो सकता है। कॉलर से यह जानने की उम्मीद है कि वे किस प्रकार से पुनर्प्राप्त करने का प्रयास कर रहे हैं। – matt
@matt - उत्तर अभी भी वही है - संपादन देखें। –
@matt - @ हंस के उत्तर और टिप्पणियों की जांच करें - यह आपकी सबसे अच्छी शर्त है। –