मेरे पास सी ++ में लिखे गए वर्गों का एक सेट है। पर्ल स्क्रिप्ट से उन्हें कॉल करने का सबसे अच्छा तरीका क्या होगा? धन्यवाद।मैं पर्ल से सी ++ कक्षा का उपयोग कैसे कर सकता हूं?
उत्तर
मैं विशेष रूप से SWIG का शौकीन नहीं हूं और इंटरफेसिंग कोड स्वयं लिखना पसंद करता हूं। पर्ल सी या सी ++ में इंटरफेसिंग के लिए 'एक्सएस' नामक छद्म भाषा के साथ आता है। दुर्भाग्यवश, इसका उपयोग करने के लिए, आपको कम से कम सी, पर्ल पता होना चाहिए, और फिर दुभाषिया एपीआई के बारे में कुछ सीखना होगा। यदि आप पहले से ही पर्ल और सी अच्छी तरह से जानते हैं, तो यह ऐसा एक बड़ा कदम नहीं है। XS पर निम्नलिखित मुख्य दस्तावेजों पर एक नज़र डालें:
इसके अतिरिक्त, ट्यूटोरियल के बहुत सारे है और इंटरनेट पर कैसे करें।
अब, एक्सएस का उपयोग कर सी ++ में इंटरफेसिंग करने के लिए कुछ अतिरिक्त कदमों की आवश्यकता है। यह पहली बार काम करने के लिए थोड़ा निराशाजनक हो सकता है, लेकिन इसे प्राप्त करने के बाद अच्छी तरह से जगह में गिर जाता है। इस संबंध में, मूल दस्तावेज सबसे अच्छा है। पर अभी भी सब कुछ खत्म नहीं हुआ। पर्ल के लिए WxWidgets बाइंडिंग के निर्माता मैटिया बार्बोन ने एक महान टूल "एक्सएस ++" लिखा है जो इसे लगभग मृत सरल बनाता है (या एक्सएस के रूप में सरल)। यह डब्ल्यूएक्स में शामिल है, लेकिन हम इसे अपने वितरण में विभाजित करने पर काम कर रहे हैं। यह काम प्रगति में है। आप Mattia's XS++ code और गीथब पर modified version of mine पा सकते हैं।
CPAN के लिए एक स्टैंडअलोन XS ++ की रिहाई वर्जित है, मैं अन्य संसाधनों से C++ के लिए XS लिखने के लिए सीखने का सुझाव देते हैं:
- काफी एक लंबे समय पहले, जॉन Keizer एक उत्कृष्ट tutorial on XS and C++ लिखा था। इसमें उपयोगी टूल और दस्तावेज़ीकरण के लिए और पॉइंटर्स भी शामिल हैं।
- मैंने उस ट्यूटोरियल से XS & सी ++ और सीपीएएन पर मिले कुछ उदाहरणों को सीखा। मुझे याद नहीं आया कि मैंने तब क्या देखा था। लेकिन अब मैं अपने काम को इंगित कर सकता हूं (अच्छा या बुरा, मुझे नहीं पता) उदाहरण: Math::SymbolicX::FastEvaluator।
- इसी प्रकार, योजनाबद्ध एक्सएस ++ वितरण में C++ और पर्ल इंटरफ़ेस के लिए XS ++ का उपयोग करने के लिए complete (albeit pointless) example शामिल है। चूंकि XS ++ को सादा एक्सएस में अनुवादित किया गया है, इसलिए आप इसे पर उदाहरण उत्पन्न कर सकते हैं।
पीएस: इनलाइन :: सीपीपी मॉड्यूल भी है। यदि यह काम करता है, तो यह शायद सबसे आसान समाधान है। मुझे संदेह है कि यह टेम्पलेट्स को संभाल सकता है, यद्यपि।
चेक http://www.swig.org:
"बड़ा घूँट एक सॉफ्टवेयर विकास उपकरण उच्च स्तरीय प्रोग्रामिंग भाषाओं की एक किस्म के साथ C++ और सी में लिखे गए प्रोग्राम्स को जोड़ता है बड़ा घूँट भाषाओं के विभिन्न प्रकार के साथ प्रयोग किया जाता है। सामान्य स्क्रिप्टिंग भाषाओं सहित जैसे पर्ल, PHP, पायथन, टीसीएल और रुबी। "
मैं आम तौर पर टीएसई की तरह एक्सएस चुनता हूं, लेकिन इस मामले में Inline::C (या Inline::CPP भी है)।मैं SWiG नापसंद करता हूं और इसके चारों ओर बनाए गए संकुल से बचने लगता हूं।
- 1. मैं पर्ल से सी कैसे परिवर्तित कर सकता हूं?
- 2. मैं पर्ल क्लास कैसे बना सकता हूं?
- 3. मैं पर्ल से फ़ाइल अनुमतियां कैसे सेट कर सकता हूं?
- 4. मैं पर्ल से यूटीएफ -8 कैसे आउटपुट कर सकता हूं?
- 5. मैं पर्ल मॉड्यूल निर्भरताओं का प्रबंधन कैसे कर सकता हूं?
- 6. मैं पर्ल में सेट का प्रतिनिधित्व कैसे कर सकता हूं?
- 7. मैं सी # में GetNextWindow() का उपयोग कैसे कर सकता हूं?
- 8. मैं सी # में डीबग्रेक() का उपयोग कैसे कर सकता हूं?
- 9. मैं सी ++ में mysql का उपयोग कैसे कर सकता हूं?
- 10. मैं अजीब का उपयोग करके क्या कर सकता हूं कि मैं पर्ल में नहीं कर सकता?
- 11. मैं सी ++/सीएलआई में संदर्भ कक्षा में 'मूल' सूचक का उपयोग कैसे कर सकता हूं?
- 12. मैं पायथन में सी ++ कक्षा का उपयोग कैसे कर सकता हूं?
- 13. मैं सी # कक्षा पुस्तकालय में HTTP कैश का उपयोग कैसे कर सकता हूं?
- 14. मैं पर्ल में XML :: LibXML से विशेषताओं और तत्वों का उपयोग कैसे कर सकता हूं?
- 15. मैं पर्ल का उपयोग कर पथ से फ़ाइल नाम कैसे निकाल सकता हूं?
- 16. मैं global.asax से Server.MapPath() का उपयोग कैसे कर सकता हूं?
- 17. क्या मैं कक्षा को अनदेखा कर सकता हूं लेकिन बाहरी रूप से सील कर सकता हूं?
- 18. मैं पर्ल का उपयोग करके पासवर्ड कैसे दर्ज कर सकता हूं और अक्षरों को '*' से बदल सकता हूं?
- 19. क्या मैं एक कंप्यूटर में स्ट्रॉबेरी पर्ल और एक्टिवस्टेट पर्ल का उपयोग कर सकता हूं?
- 20. मैं पर्ल में कॉलबैक के रूप में कोड रेफरी का उपयोग कैसे कर सकता हूं?
- 21. मैं एनोम का उपयोग कर कक्षा में पंक्ति को कैसे मैप कर सकता हूं?
- 22. मैं एक अलग जार का उपयोग कर कक्षा को ओवरराइड कैसे कर सकता हूं?
- 23. मैं पर्ल में 64-बिट अंकगणित कैसे कर सकता हूं?
- 24. मैं पर्ल मॉड्यूल को अनलोड कैसे कर सकता हूं?
- 25. मैं JConsole का उपयोग कर दूरस्थ रूप से वेबलॉगिक से कैसे कनेक्ट कर सकता हूं?
- 26. मैं पर्ल सबराउटिन कैसे रेखांकित कर सकता हूं?
- 27. मैं पर्ल से इनलाइन सी ++ में सरणी कैसे पास कर सकता हूं?
- 28. मैं थोक खोज कैसे कर सकता हूं और पर्ल के साथ प्रतिस्थापित कैसे कर सकता हूं?
- 29. मैं पर्ल में यूनिक्स grep कैसे कार्यान्वित कर सकता हूं?
- 30. मैं पर्ल में JSON कैसे पार्स कर सकता हूं?
थोड़ा विस्तार का उल्लेख करना भूल गए: जॉन केइज़र के ट्यूटोरियल में डीन रोहेरिच की सीपीएएन निर्देशिका का एक लिंक है। लिंक एक बाध्य सीपीएएन दर्पण के लिए है। इसके बजाय इसे आजमाएं: http://search.cpan.org/CPAN/authors/id/DMR/ – tsee
एक्सएस ++ को ExtUtils :: XSpp से CPAN के रूप में जारी किया गया है: http://search.cpan.org/dist/ExtUtils-XSpp यह अभी भी शुरुआती दिनों में है, लेकिन मैंने सफलतापूर्वक Wx.pm बनाया है। – tsee