के हम MyTest.so नामक एक साझा लाइब्रेरी है और हम Xamarin.Android परियोजना में उपयोग करना चाहते हैं मान लेते हैं। MyTest.so)
पूर्णांक MyTest_GetValue एक समारोह के होते हैं (;
अब, हम Xamarin.Android परियोजना पर इस सुविधा का उपयोग करने की आवश्यकता है। ये कदम उठाएँ इतनी के रूप में सफल होने के लिए कर रहे हैं:
चरण 1: Xamarin.Android परियोजना lib और उप-फ़ोल्डर armeabi कहा जाता है के अंदर एक नया फ़ोल्डर बनाएँ। here
चरण 2: लाइब्रेरी के गुणों को सेट करें। (आयातित लाइब्रेरी) "एंड्रॉइडनेटिव लाइब्रेरी" पर कार्रवाई करें और "हमेशा कॉपी करें" पर आउटपुट में कॉपी करें, के रूप में armeabi फ़ोल्डर के अंदर इस्तेमाल किया जाना चाहिए।
चरण 3: (Xamarin.Android क्लास जैसे में कार्य करना: MainActivity.cs)
द्वारा नाम स्थान InteropServices शामिल करें "System.Runtime.InteropServices का उपयोग कर,"
उपयोग मानक DllImport प्रोजेक्ट में मूल पुस्तकालय को नीचे आयात करने के लिए: [DllImport ("MyTest.so")] सार्वजनिक बाहरी स्टैटिक int MyTest_GetValue(); // सटीक फ़ंक्शनक्शन नाम के साथ, टाइप करें & .so Lib में पैरा।
चरण 4: उपरोक्त फ़ंक्शन का उपयोग करें (MyTest_GetValue())।
उदाहरण के लिए
:
पूर्णांक मान = MyTest_GetValue();
कंसोल। राइटलाइन (value.ToString());
मिशन पूरा!: डी
स्रोत
2013-04-09 12:55:44
क्या आप एक [आउट] तर्क के साथ एक उदाहरण समारोह दिखा सकते हैं? बूल MyTest_GetValue (स्ट्रिंग * retVal) की तरह; धन्यवाद – hrz
जहां तक मैं सोच सकता हूं, यह [आउट] तर्कों का उपयोग करके कोई अलग नहीं होना चाहिए। चरण 1 और 2 निष्पादित करना, फिर चरण 3 जिसमें [आउट] तर्कों के साथ फ़ंक्शन शामिल है और अंततः उस कार्य को लेने के लिए चरण 4 को ठीक काम करना चाहिए। नोट: 2013 से Xamarin बहुत बदल गया है (यह सवाल)। –