2009-04-01 17 views
8

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

उत्तर

5

मैंने सिमुलेशन प्रोजेक्ट के लिए सी ++/सीएलआई का उपयोग किया है। मेरा अनुकरण इंजन जो वास्तविक गणना करता है वह सी ++ में लिखा गया एक मौजूदा कोड बेस था। मुझे इसके लिए एक जीयूआई फ्रंट एंड होना चाहिए, जिसे मैंने सी ++/सीएलआई में सफलतापूर्वक कोड किया था।

मेरे विचार में, भाषा थोड़ी सी वाक्य रचनात्मक अजीबता के साथ सी # के रूप में कोड करने जितनी आसान है। उस ने कहा, सिंटैक्स उस प्रबंधित एक्सटेंशन की तुलना में कहीं अधिक सरल है जो माइक्रोसॉफ्ट पहले के साथ आया था।

सी ++/सीएलआई की सबसे शक्तिशाली विशेषता में से एक को एमएसआईएल में अपने मौजूदा देशी सी ++ कोड को पुनः संयोजित करने की क्षमता होनी चाहिए। बेशक वहाँ हिचकी हो सकती है, लेकिन ज्यादातर अनुप्रयोगों के लिए यह एक मुसीबत मुक्त व्यायाम होना चाहिए।

सी ++/सीएलआई की उपयुक्तता के लिए, मुझे लगता है कि यह सी ++ के साथ अंतःक्रियाशीलता के लिए सख्ती से एक भाषा रहेगा। यदि आप एक बिल्कुल नया ऐप लिख रहे हैं, तो सी #+/सीएलआई को चुनने के लिए बिल्कुल शून्य कारण है, कहें, सी #। जैसा कि मैंने कहा, बाद के मुकाबले उपयोग करने के लिए थोड़ा और अजीब है।

3

सी ++/सीएलआई CLR into FreeSWITCH लाने के लिए उत्कृष्ट रूप से सरल था। होस्टिंग API से निपटने या मोनो का उपयोग करने से कहीं अधिक आसान है।

पिछली बार मैंने प्रबंधित सी ++ का उपयोग 2003 में किया था। मुझे याद है कि यह दर्द का कुछ हद तक है और निर्बाध रूप से काम नहीं कर रहा है।

+1

मुझे आश्चर्य है, क्या यह क्रॉसप्लेटफार्म अनुप्रयोगों में प्रबंधित और अप्रबंधित कोड मिश्रण पर सी ++/सीएलआई सुविधाओं का उपयोग करने के लिए सकारात्मक है? या यह केवल विंडोज संस्करण में संभव है? – macropas

+0

आखिरी बार मैंने जांच की, मोनो इसका समर्थन नहीं करता है। – MichaelGG

8

मैंने इसे प्रबंधित और देशी कोड के बीच एकीकरण की पतली परतों को लिखने के लिए उपयोग किया है। हालांकि यह सब कुछ है।

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

वहाँ दो अन्य बड़ी अनूठी विशेषताओं हालांकि इस प्रकार हैं:

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

  • डक-टाइपिंग टेम्पलेट्स, जिनका उपयोग सीएलआई जेनरिक के साथ किया जा सकता है। एक और चीज जो सी # में बहुत उपयोगी होगी, हालांकि इसे ऐतिहासिक सामान के बिना बहुत अधिक सहजता से बनाया जा सकता है।

लेकिन सी # पिछले दो चीजों के बिना पर्याप्त है कि मैं आम तौर पर सी ++/सीएलआई का उपयोग करने के लिए प्रेरित नहीं हूं।

+1

क्या आप कहना चाहते हैं कि सी ++ के पास जीसी पर अधिक नियंत्रण है और यह तुरंत स्मृति मुक्त करना संभव है? – macropas

+2

सी ++/सीएलआई में, आप परंपरागत सी ++ की तरह ही आवंटित और मुक्त मेमोरी आवंटित कर सकते हैं, और एक सी ++ विनाशक स्वचालित रूप से सीएलआर को निपटान() के रूप में उजागर किया जाता है, यानी आप वास्तविक सी ++ आरएआईआई को .NET ऑब्जेक्ट्स के साथ कर सकते हैं। लेकिन आपके पास जीसी पर अधिक नियंत्रण नहीं है - आप बस निर्दिष्ट कर सकते हैं कि इसका उपयोग कहां किया जाता है और कहां नहीं। – OregonGhost

+1

@macropas - ओरेगॉनहोस्ट सही है; यदि जीसी द्वारा आप सीएलआर के जीसी का मतलब रखते हैं, तो सी ++/सीएलआई के पास किसी अन्य भाषा की तुलना में इसका अधिक नियंत्रण नहीं होता है। –

4

हम सी ++/सीएलआई का व्यापक रूप से उपयोग करते हैं।हमने इसे उम्र बढ़ने वाले एमएफसी एप्लिकेशन को नेट उम्र में खींचने के लिए उपयोग किया है, इसलिए अब हम सी # में सबसे नई कार्यक्षमता लिख ​​सकते हैं और सी ++/सीएलआई का उपयोग करके विरासत एमएफसी कोड के साथ एकीकृत कर सकते हैं, देशी वर्गों को लपेटकर और नए प्रबंधित व्यावसायिक वस्तुओं को लिखकर । हमारी पुरानी असेंबली में, हम अभी भी सी ++/सीएलआई में नई कार्यक्षमता लिख ​​रहे हैं।

मुझे "प्रबंधित सी ++" के साथ कोई अनुभव नहीं है लेकिन सी ++/सीएलआई एमएफसी और विजुअल सी ++ की तुलना में उपयोग करने में खुशी है। इसमें या तो प्रबंधित सी ++ या विजुअल सी ++ की तुलना में अधिक क्लीनर सिंटैक्स है और हमारे पास इसके साथ गति करने के लिए जूनियर देवताओं को भी कोई समस्या नहीं है।

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

हम समर्थन (स्वीकार्य), एमबीयूनीट/गैलियो को प्रबंधित कक्षाओं और एनएमॉक या राइनोमोक्स के परीक्षण के लिए हमारे मॉकिंग फ्रेमवर्क के लिए विजुअल असिस्ट एक्स का उपयोग करते हैं।

कुल मिलाकर, मैं कहूंगा कि भाषा ने हमारे उत्पाद को बचाया है और हमें विकास की दुनिया में चल रही सभी नई रोमांचक चीजों का लाभ उठाने की अनुमति देता है। अगर हम अभी भी पूरी तरह से विज़ुअल सी ++/एमएफसी का उपयोग कर रहे थे तो हमें देवताओं की भर्ती में कठिनाई होगी और हम .NET का उपयोग कर सीओटीएस पसंद में कहीं अधिक सीमित रहेंगे।

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