के लिए क्रॉस-प्लेटफ़ॉर्म विकल्प मैं घटक आधारित प्रोग्रामिंग (इसे COM, अन्य सिस्टम, या सादा सी ++ में प्रतिमान का उपयोग करके) के साथ मोहक बना रहा हूं। यदि आमतौर पर "पारंपरिक" ओओपी मॉडल में उपयोग किया जाता है, तो इसका उपयोग करने के लिए थोड़ा सा उपयोग करने की आवश्यकता होती है, लेकिन यह निश्चित रूप से इसके लायक है। यह मेरे कोड को और अधिक रखरखाव और विस्तार करने में आसान बना दिया गया है।COM
जिस परियोजना पर मैं वर्तमान में काम कर रहा हूं वह प्रतिमान का उपयोग कर रहा है, लेकिन कोई सेट सिस्टम नहीं है। हालांकि, मैं वास्तव में कुछ प्रकार की प्रणाली ढूंढना चाहता हूं जो मैं निम्नलिखित आवश्यकताओं के साथ उपयोग कर सकता हूं। मेरे पास अब एक नई प्रणाली में जो कुछ है, उसमें से कुछ समय लगेगा, लेकिन मैं उस समय के एक से अधिक समय को बचाऊंगा।
आवश्यकताओं:
- क्रॉस-प्लेटफॉर्म
- फास्ट
- निर्माण अच्छी तरह से सी ++
- का समर्थन करता है पार प्रक्रिया मार्शलिंग
मुझे उन आवश्यकताओं पर विस्तृत करते हैं:
क्रॉस-प्लेटफार्म
असल में, मुझे इसे विंडोज और मैक पर काम करने की आवश्यकता है। लिनक्स अच्छा होगा, लेकिन किसी भी तरह से आवश्यक नहीं है। इसके अलावा, इसे वास्तव में सभी प्लेटफार्मों के लिए अन्य आवश्यकताओं को पूरा करने की आवश्यकता है। मैक के लिए एक COM है, जो आदर्श होगा लेकिन यह आवश्यकता 4 का समर्थन नहीं करता है। इसके अतिरिक्त, इसे जीसीसी और एमएसवीसी दोनों का समर्थन करना होगा।
फास्ट
यह जहां CORBA दुर्भाग्य से खो देता है, भले ही यह अन्य तीन आवश्यकताओं को पूरा है। इन-प्रोसेस विधि कॉल जितनी जल्दी हो सके (आदर्श, COM की तरह) की आवश्यकता होती है, क्योंकि कुछ रूटीन को ऑडियो इंटरप्ट से भी बुलाया जा सकता है।
सी ++
साथ अच्छी तरह से काम करता है ... मुझे लगता है कि यह एक ज्यादातर स्पष्ट है। मुझे घटकों को लागू करने के लिए सी ++ कक्षाओं का उपयोग नहीं करना पड़ेगा, हालांकि यह निश्चित रूप से सहायक होगा, और विकल्प का उपयोग करना अभी भी आसान होना चाहिए, खासकर जब से मैं तीसरे पक्ष के एक्सटेंशन के लिए एपीआई जारी करना चाहता हूं।
पार प्रक्रिया
कि करके प्राथमिकता निर्धारण का समर्थन करता है मेरा मतलब है कम से कम कॉल क्रमानुसार करने में सक्षम होने के। यदि यह आईडीएल से उत्पन्न कोड के माध्यम से किया जाता है, तो यह मेरे साथ बिल्कुल ठीक है, और मुझे क्रॉस-प्रोसेस संचार को लागू करने में भी कोई फर्क नहीं पड़ता।
COM बहुत अच्छा होगा, लेकिन यह पूरी तरह से आवश्यकता 1 को पूरा नहीं करता है। कोर्बा भी बहुत अच्छा होगा, लेकिन यह आवश्यकता 2 को पूरा नहीं करता है (यहां तक कि सबसे तेज ओआरबी के साथ भी)। XPCOM आवश्यकता 2 को पूरा नहीं कर सकता है, और एमएसवीसी के साथ काम नहीं करता है इसलिए आवश्यकता को पूरा नहीं करता है।
कोई विचार क्या और बाहर है? मेरा अगला कदम प्रोटोबफ या कुछ समान का उपयोग करके अपना खुद का रोल करना होगा, लेकिन निश्चित रूप से मैं इससे बचना चाहता हूं।
अद्यतन
विस्तार से बता दें - इस संदर्भ में एक ऑडियो बाधा 2-3ms तक कम हो सकता है। वह समय मेरे लिए भी उपलब्ध नहीं है, क्योंकि उस समय अन्य घटकों को संसाधित करने की आवश्यकता है, और मेरा सॉफ़्टवेयर स्वयं सॉफ्टवेयर का एक और टुकड़ा लपेट रहा है जिसे उस समय संसाधित करने की आवश्यकता है। यही कारण है कि इन-प्रोसेस और क्रॉस-प्रोसेस दोनों मार्शलिंग को बेहद तेज होना चाहिए।
XPCOM को एमएसवीसी, AFAIK के साथ काम करना चाहिए। इसके अलावा, अगर ऐसा नहीं होता है, तो क्या आप MinGW का उपयोग नहीं कर सकते? – Zifre
मैं मिनीजीडब्लू का उपयोग कर सकता हूं, लेकिन एक के लिए, मेरा पूरा टूलचैन एमएसवीसी के साथ एकीकृत है, और जब भी मैं मिनगब्लू को एकीकृत कर सकता हूं, मैं एमएसवीसी में अद्भुत डीबगर का उपयोग नहीं कर सकता। – arke
मुझे लगता है कि अगर आप इसे बनाते हैं तो आप बहुत पैसा कमाएंगे। प्रक्रिया में, प्रक्रिया से बाहर, पीसी, मैक, लिनक्स, तेज तेज। बहुत पैसे। :) –