2012-04-13 24 views
9

के लिए मोनो में देशी सी ++ पुस्तकालयों का उपयोग कैसे करें I मोबाइल फोन बनाने के लिए एंड्रॉइड और मोनो टच के लिए मोनो का उपयोग करने में दिलचस्पी है जो मेरे पास बड़ी संख्या में सी ++ मूल पुस्तकालयों का उपयोग कर सकती है। क्या मुझे आईओएस या एंड्रॉइड पर मेरे अंतिम मोबाइल ऐप में विधियों को कॉल करने या कोड को शामिल करने के बारे में कुछ विशिष्ट निर्देश मिल सकते हैं?एंड्रॉइड (मोनोड्रॉइड) और मोनो टच

मैंने एक्समरिन दस्तावेज ऑनलाइन देखा है, यह मेरे लिए बहुत ही गूढ़ है क्योंकि प्रोग्रामिंग मोबाइल ऐप्स (Mono for Android और MonoTouch) के लिए नया है। विजुअल स्टूडियो में एक मोनोड्रॉइड ऐप बनाने के मामले में (जो मैं सबसे ज्यादा परिचित हूं), मेरे मोनोड्रॉइड प्रोग्राम से देशी फ़ंक्शन को कॉल करने के लिए मुझे कौन से विशिष्ट कदम हैं। सी पुस्तकालयों के लिए, मैं या तो डीएलएल (गतिशील) या .LIB (स्थैतिक) रूप में संकलित कर सकता हूं। मैं इस धारणा के तहत भी हूं कि गतिशील पुस्तकालयों का उपयोग मोबाइल ऐप्स के लिए नहीं किया जा सकता है।

+0

, मुझे नहीं लगता कि आप कर सकते हैं करते हैं। मैं इस बारे में बहुत गलत हो सकता था क्योंकि मैंने मोनोडायड के साथ विशेष रूप से निम्न स्तर/पागल नहीं किया है और मैंने मोनो टच का उपयोग नहीं किया है। –

उत्तर

9

पी/इनवॉक्स का उपयोग कर सी ++ पुस्तकालयों को बांधना सैद्धांतिक रूप से संभव है, लेकिन यह एक विशेष रूप से अच्छा तरीका नहीं है (क्योंकि आप उलझन में फ़ंक्शन नामों के लिए बाध्यकारी होंगे, जो काफी अस्पष्ट हैं और संभवतः कंपेलरों/ओएस के बीच बदल जाएंगे) ।

सी ++ पुस्तकालयों तक पहुंचने का अनुशंसित तरीका सी सी एपीआई बनाना और पी/इनवॉक का उपयोग करना है (आप वेब पर पी/इनवॉकिंग करने के तरीके के बारे में बहुत सारी जानकारी पा सकते हैं, यहां शुरू करने के लिए एक जगह है: http://mono-project.com/Dllimport) ।

इसके अलावा, मोनो टच के लिए गतिशील पुस्तकालयों का उपयोग करना संभव नहीं है (यह एक ऐप्पल प्रतिबंध है), आपको स्थिर पुस्तकालयों का उपयोग करना होगा। मुझे नहीं पता कि एंड्रॉइड के लिए मोनो के लिए इस तरह के कोई प्रतिबंध हैं या नहीं।

2

मिगुएल से यह ब्लॉग पोस्ट विषय पर एक दिलचस्प पढ़ा है।

CXXI: Bridging the C++ and C# worlds.

अगर CXXI ​​एक इस समय उपलब्ध है मैं नहीं जानता, लेकिन उस पर और समर्थन नज़र रखने के लिए एक परियोजना है।

5

सबसे अच्छा विकल्प है कि आपकी सी ++ लाइब्रेरी के लिए बाध्यकारी बनाने के लिए स्विग का उपयोग करना है जिसे आप सी # से एक्सेस कर सकते हैं।

http://www.swig.org/Doc1.3/CSharp.html

3

Cxxi monotouch साथ काम नहीं करता:

यहाँ वर्णन है। जैसा कि मैंने पिछले सप्ताह यह एक ही मुद्दे पर भाग गया, मैं कैसे बड़ा घूँट monotouch लिए काम करता है पाने के लिए के बारे में ब्लॉग: मेरे सिर के ऊपर बंद

http://blog.reblochon.org/2013/01/c-bindings-for-monotouch-using-swig.html

संबंधित मुद्दे