2008-09-19 6 views
12

क्या आप लुआबिंद, टूलाआ ++, या कुछ अन्य लाइब्रेरी (यदि हां, तो कौन सा) या कोई भी नहीं उपयोग करते हैं?आप लूआ से सी ++ कोड कैसे चिपकते हैं?

प्रत्येक दृष्टिकोण के लिए, प्रो और कॉन क्या हैं?

+0

अप्स ... सही :) – steffenj

+0

इस विषय पर कुछ चर्चा हुई [यहां] (http://stackoverflow.com/questions/63784/implementing-scripts-in-c-app#63865)। – Mark

उत्तर

4

भाग में अपने ही सवाल का जवाब करने के लिए:

Luabind: एक बार आप जानते हैं कि यह अजीब टेम्पलेट वाक्य रचना के माध्यम से तरीकों और वर्गों के लिए बाध्य करने के लिए कैसे, यह नया बाइंडिंग जोड़ने के लिए बिल्कुल स्पष्ट और आसान है। हालांकि, लुइबिंद का एक महत्वपूर्ण प्रदर्शन प्रभाव है और इसका उपयोग रीयलटाइम अनुप्रयोगों के लिए नहीं किया जाना चाहिए। सी कार्यों को कॉल करने से लगभग 5-20 गुना अधिक ओवरहेड जो सीधे ढेर में हेरफेर करते हैं।

1

मैं किसी पुस्तकालय का उपयोग नहीं करता हूं। मैंने कुछ समय पहले सी लाइब्रेरी का पर्दाफाश करने के लिए एसडब्ल्यूआईजी का इस्तेमाल किया है, लेकिन बहुत अधिक ओवरहेड था, और मैं इसका इस्तेमाल करना बंद कर देता हूं।

पेशेवर बेहतर प्रदर्शन और अधिक नियंत्रण हैं, लेकिन लिखने में अधिक समय लगता है।

1

अपनी बाइंडिंग के लिए कच्चे लुआ एपीआई का उपयोग करें - और उन्हें सरल रखें। एलआईए लेखकों द्वारा एपीआई स्वयं (ऑक्स लाइब्रेरी) और पुस्तकालयों में प्रेरणा लें।

कुछ अभ्यास के साथ कच्चे एपीआई सबसे अच्छा विकल्प है - अधिकतम लचीलापन और न्यूनतम अनियंत्रित ओवरहेड। आपको वह चाहिए जो आप चाहते हैं और अब, जिस तरह से आपको इसकी आवश्यकता है।

यदि आपको बड़ी तीसरी पार्टी पुस्तकालयों को बांधना होगा तो स्वचालित जनरेटर जैसे टोला, टोलाआ ++ (या विशिष्ट मामले के लिए अपना खुद का रोल भी) का उपयोग करना चाहिए। यह आपको मैन्युअल काम से मुक्त कर देगा।

मैं लुबाइंड का उपयोग करने की अनुशंसा नहीं करता। फिलहाल यह विकास रोक दिया गया है (हालांकि जीवन में वापस आना शुरू हो रहा है), और यदि आप कुछ कोने मामले से मिलेंगे, तो आप अपने आप पर हो सकते हैं। इसके अलावा लुबाइंड टेम्पलेट मेटाप्रोग्रामिंग का भारी उपयोग करता है। दृश्य के आधार पर यह (और नहीं) अस्वीकार्य हो सकता है।

+0

उन लोगों के अलावा जो कंपेलरों का उपयोग कर रहे हैं जो टीएमपी का समर्थन नहीं कर सकते हैं, मुझे नहीं लगता कि यह अस्वीकार्य क्यों होगा।विकास के लिए, कुछ हैं (मैंने हाल ही में एक वृद्धि/फिक्स का योगदान दिया है), और अधिकांश समय मुझे यह कुछ भी महत्वपूर्ण नहीं लगता है। यह * बहुत * सक्रिय नहीं है, हालांकि, सच है। –

5

मैं वास्तव में 'अपने स्वयं के रोल' के साथ सहमत नहीं हो सकता, बुनियादी प्रकारों को बाध्यकारी और लुआ को स्थिर सी फ़ंक्शंस तुच्छ है, हां, लेकिन जब आप टेबल और मेटाटेबल्स से निपटना शुरू करते हैं तो तस्वीर बदल जाती है; चीजें बहुत जल्दी चलती हैं।

लुआबिंड नौकरी करने लगता है, लेकिन मेरे पास इसके साथ दार्शनिक मुद्दा है। मेरे लिए ऐसा लगता है जैसे आपके प्रकार पहले से ही जटिल हैं कि लुबाइंड भारी रूप से टेम्पलेट किया गया है, यह आपके कोड को आसान बनाने वाला नहीं है, क्योंकि मेरे एक दोस्त ने कहा था, "संकलन संदेशों को समझने के लिए आपको हर्ब शटर की आवश्यकता होगी" । इसके अलावा यह बूस्ट पर निर्भर करता है, साथ ही संकलन के समय को गंभीर हिट मिलती है, आदि

कुछ बाइंडिंग करने के बाद, टोलुआ ++ सबसे अच्छा लगता है। टोलुआ विकास में बहुत अधिक प्रतीत नहीं होता है, जहां टोलुआ ++ ठीक काम करता प्रतीत होता है (साथ ही 'टोलुआ' ट्यूटोरियल के आधे 'वास्तव में,' टोलुआ ++ 'ट्यूटोरियल हैं, मुझ पर भरोसा करें :) टोलुआ सही उत्पन्न करता है सामान, स्रोत को संशोधित किया जा सकता है और यह जटिल मामलों (जैसे टेम्पलेट्स, यूनियनों, नामहीन structs, आदि) से निपटने लगता है

टोलुआ ++ के साथ सबसे बड़ा मुद्दा उचित ट्यूटोरियल की कमी, प्री-सेट विजुअल की कमी प्रतीत होता है स्टूडियो प्रोजेक्ट्स, या तथ्य यह है कि कमांड लाइन का पालन करना थोड़ा मुश्किल है (आप पथ/फाइलों में सफेद रिक्त स्थान नहीं हो सकते हैं- कम से कम विंडोज़ में) और फिर भी, मेरे लिए यह विजेता है।