Microsoft केवल एक C ++ सिस्टम बनाता था जो आपको उनके Windows API (जिसे win32 कहा जाता है) का उपयोग करने देता है, फिर एक दिन उन्होंने .NET का आविष्कार किया और लगा कि सब कुछ बदलना होगा।
इसलिए उन्होंने "C ++ के लिए प्रबंधित एक्सटेंशन" बनाया, जो मूल रूप से C ++ था, लेकिन गैर-मानक एक्सटेंशन के भार के साथ, __gc
.NET सुविधाओं का समर्थन करने के लिए जैसे कीवर्ड जोड़ रहा था (जैसे कि मूल निवासी के बजाय GC ढेर पर आवंटित करना)
लेकिन लोगों को यह पसंद नहीं आया क्योंकि यह वास्तव में उन सभी अतिरिक्त खोजशब्दों वाले नहीं थे, इसलिए Microsoft ने इसे फिर से डिज़ाइन किया और इसे C ++ / CLI कहा, जिसमें अतिरिक्त कीवर्ड का एक बहुत छोटा समूह था, लेकिन ^
( जैसे है) जीसी हीप पर .NET ऑब्जेक्ट के लिए एक संदर्भ 'पॉइंटर')।
कुछ साल बाद और Microsoft ने महसूस किया है कि .NET उनके द्वारा की गई चांदी की गोली नहीं है, और उन्होंने अपनी इन-फाइटिंग विंडोज और डेवलपर टीमों को भी मिला दिया। इस पुनर्मूल्यांकन के एक हिस्से ने WinRT नामक एक बिल्कुल नए विंडोज एपीआई के निर्माण का नेतृत्व किया, जो पूरी तरह से देशी कोड है और इसका मतलब था कि पुराने एक्सटेंशन अब उपयोगी नहीं थे, इसलिए Microsoft ने अपने C ++ एक्सटेंशन को एक के लिए विकसित किया जो नए के साथ काम कर रहा था WinRT एपीआई आसान - C ++ / CLI (जैसे ^) से कुछ एक्सटेंशन रखकर।
तो - वहां आप जाते हैं, विस्तारित C ++ के 3 अलग-अलग संस्करण जो कि सतही रूप से C ++ है। कम से कम नवीनतम संस्करण फिर से मूल कोड है, इसलिए आपको एक्सटेंशन का उपयोग करने की आवश्यकता नहीं है यदि आप नहीं चाहते हैं क्योंकि आप सीधे एपीआई तक पहुंच सकते हैं (इसे डब्ल्यूआरएल कहा जाता है और पुराने एटीएल टेम्पलेट वर्गों की तरह है)
अगर आपको लगता है कि आप क्रॉस-प्लेटफ़ॉर्म कोड को कोड कर सकते हैं, तो आप - आप एपीआई कॉल को बदल सकते हैं, लेकिन आप ^
विजुअल C ++ के अलावा किसी भी कंपाइलर का उपयोग नहीं कर सकते । मैं WRL API का उपयोग करने की सलाह दूंगा और अपने कोड को यथासंभव 'अतिरिक्त कोड' दिए जाने के लिए मानक को ध्यान में रखते हुए आपको C ++ / CX की तुलना में लिखने की आवश्यकता होगी जो इतना शानदार नहीं है।