माइक्रोसॉफ्ट विजुअल सी ++

From Vigyanwiki
विजुअल सी ++
Developer(s)माइक्रोसॉफ्ट
Initial releaseफरवरी 1993; 30 साल पहले [1]
Stable release
14.32.31326
Written inC++[1]
Operating systemविंडोज़
PlatformIA-32, x86-64 and ARM
Available inअंग्रेजी, चीनी (सरलीकृत और पारंपरिक), चेक, फ्रेंच, जर्मन, इतालवी, जापानी, कोरियाई, पोलिश, पुर्तगाली (ब्राजील), रूसी, स्पेनिश, तुर्की
Typeसंकलनकर्ता
Licenseट्रायलवेयर औरफ्रीवेयर
Websitedocs.microsoft.com/en-us/cpp/

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

कई अनुप्रयोगों को ठीक से काम करने के लिए पुनर्वितरण योग्य विज़ुअल सी++ रनटाइम लाइब्रेरी संकुल की आवश्यकता होती है। इन संकुलो को प्रायः उनके द्वारा आधारित अनुप्रयोगों से अलग स्थापित किया जाता है, जिससे कई अनुप्रयोगों को केवल एक संस्थापन के साथ संकुलो का उपयोग करने में सक्षम बनाया जाता है। ये विज़ुअल सी++ पुनर्वितरण योग्य और रनटाइम संकुल ज्यादातर मानक लाइब्रेरी के लिए स्थापित किए जाते हैं जिनका उपयोग कई अनुप्रयोगों के लिए करते हैं।[2]


इतिहास

विजुअल सी ++ के पूर्ववर्ती को माइक्रोसॉफ्ट सी/सी++ कहा जाता था। विंडोज 1.0 के लिए माइक्रोसॉफ्ट क्विक सी 2.5 और माइक्रोसॉफ्ट क्विक सी भी था। विज़ुअल सी++ संकलनकर्ता को अभी भी माइक्रोसॉफ्ट सी/सी++ के रूप में जाना जाता है और विज़ुअल सी++ 2015 अद्यतनीकरण 2 के प्रकाशन के अनुसार, संस्करण 14.0.23918.0 पर है।[citation needed]


16-बिट संस्करण

  • माइक्रोसॉफ्ट सी 1.0, लैटिस सी पर आधारित, 1983 में माइक्रोसॉफ्ट का पहला सी परिणाम था। यह K&R सी के अनुरूप नहीं था।
  • सी 2.0 ने कोड अनुभाग और आंकड़े अनुभाग दोनों के लिए 1MiB तक की अनुमति देते हुए बड़े मॉडल अधार को संकलित किया। [3]
  • सी 3.0 माइक्रोसॉफ्ट के अंदर विकसित पहला संस्करण था।[4] इस संस्करण का उद्देश्य K&R और बाद के एएनएसआई मानक के साथ अनुरूपता थी । यह 1984 के शुरुआत में माइक्रोसॉफ्ट (विंडोज़ और ज़ेनिक्स विकास के लिए) के अंदर उपयोग किया जा रहा था। इसे 1985 में एक परिणाम के रूप में भेज दिया गया था।
  • सी 4.0 ने इष्टतमीकरण और कोड व्यू, एक स्रोत-स्तरीय-दोषमार्जक जोड़ा।
  • सी 5.0 ने चक्र इष्टमीकरण और 'विशाल मेमोरी मॉडल' (64 केबी से बड़ी सरणी) अधार जोड़ा। माइक्रोसॉफ्ट फोरट्रान और 80386 के लिए पहला 32-बिट संकलनकर्ता भी इस युक्ति का हिस्सा था।
  • 1988 में जारी सी 5.1 ने OS/2 1.x के लिए संकलन प्रोग्राम की अनुमति दी।
  • सी 6.01989 में जारी किया गया। इसमें प्रोग्रामर के कार्यक्षेत्र आईडीई , सार्वत्रिक प्रवाह विश्लेषण, एक स्रोत ब्राउज़र और एक नया दोषमार्जक जोड़ा गया, और एक वैकल्पिक सी++ फ्रंट सिरा सम्मिलित किया गया।[5]
  • सी/सी++ 7.01992 में जारी किया गया था। सी++ और एमएफसी(माइक्रोसॉफ्ट फाउंडेशन क्लास लाइब्रेरी ) 1.0 के लिए अंतनिर्मित अधार जोड़ा गया।[6]
  • विज़ुअल सी++ 1.0, जिसमें एमएफसी2.0 सम्मिलित था, ये फरवरी 1993 में 'विज़ुअल' सी++ का पहला संस्करण जारी किया गया था। यह सीफ्रंट 2.1 के अनुरूप था[7]और दो संस्करणों में उपलब्ध था : * * *मानक: विंडोज के लिए क्विकसी को बदल दिया गया।
    • दक्षतापूर्वक: सी/सी++ 7.0 को बदला गया। डॉस और विंडोज अनुप्रयोगों, एक इष्टतमीकरण संकलनकर्ता , एक स्रोत प्रोफाइलर और विंडोज 3.1 एसडीके दोनों को बनाने की क्षमता सम्मिलित है।[7] फार घेरा 286 डॉस विस्तारक लाइट भी सम्मिलित थी।[8]
  • विजुअल सी++ 1.5 को दिसंबर 1993 में जारी किया गया था, जिसमें एमएफसी2.5 सम्मिलित था, और एमएफसी में OLE 2.0 और ओडीबीसी का पक्ष जोड़ा गया था। [9] यह विजुअल सी++ का पहला संस्करण था जो केवल सीडी-रोम पर आया था।
    • विजुअल सी++ 1.51 और 1.52 प्रमाणीकरण जाँच के भाग के रूप में उपलब्ध थे।
    • विजुअल सी++ 1.52b 1.52 के समान है, लेकिन इसमें संचालन विकास उपकरण समूह ( किट) सम्मिलित नहीं है।
    • विजुअल सी++ 1.52सी 1.5 का एक पैच किया हुआ संस्करण था। यह माइक्रोसॉफ्ट विंडोज़ 3.x. के लिए विगत और यकीनन सबसे प्रचलित विकास पटल है। यह माइक्रोसॉफ्ट विकास प्रसार के माध्यम से उपलब्ध है।







सख्ती से 32-बिट संस्करण

  • विजुअल सी++ 1.0 (मूल नाम: विजुअल सी++ 32-बिट संस्करण) इंटेल 386 स्थापत्य के लिए 32-बिट विकास के लिए पहला संस्करण था। [10] यद्यपि 16-बिट संस्करण 1.5 उपलब्ध होने पर जारी किया गया था, इसमें OLE2 और ओडीबीसी के लिए अधार सम्मिलित नहीं था। यह विजुअल सी++ 16/32-बिट सेट नामक पोंटल में भी उपलब्ध था, जिसमें विजुअल सी++ 1.5 सम्मिलित था।[11]
  • विज़ुअल सी++ 2.0, जिसमें एमएफसी 3.0 सम्मिलित था, केवल 32-बिट वाला पहला संस्करण था। कई मायनों में, यह संस्करण अपने समय से आगे था, क्योंकि विंडोज 95, के बाद से, तब "शिकागो" कूटनाम , अभी तक जारी नहीं किया गया था, और विंडोज एनटी के पास केवल एक छोटा सा बाजार हिस्सा था। माइक्रोसॉफ्ट ने विजुअल सी++ 1.5 को 2.x विज्ञप्ति के हिस्से के रूप में 2.1 तक सम्मिलित और नवीनतम किया, जिसमें विजुअल सी++ 1.52 और संचालन विकास किट (सीडीके) के 16-बिट और 32-बिट दोनों संस्करण सम्मिलित थे। विजुअल सी++ 2.x मे भी Win32s के विकास का अधार किया। यह माइक्रोसॉफ्ट विकास प्रसार के माध्यम से उपलब्ध है। यहाँ एमआईपीएस और अल्फा प्रसंस्कारित्र (यंत्र) के लिए एक विजुअल सी++ 2.0 आरआईएससी संस्करण था, साथ ही मैकितोश (68000 निर्देश सेट) के लिए कई ऑपरेटिंग सिस्टमस पर खुलने में समर्थ सॉफ्टवेर क़ा (क्रॉस-प्लेटफ़ॉर्म ) संस्करण भी था।[12]
    • विजुअल सी++ 2.1 और 2.2 अवनिर्देश के माध्यम से उपलब्ध 2.0 के लिए नवीनतम थे।
  • 11-12-1985 को जारी विजुअल सी++ 4.0, [14] ने विकास प्रसारण-कक्ष आईडीई की शुरुआत की। [13] गैर-अतिव्यापी पट्टिकाएँ-दिशाज्ञान पट्टिका ,संयोजन संपादक/स्रोत स्तर दोषमार्जक (एक प्रोग्राम जो दूसरे प्रोग्राम्स में कमियों का अन्वेषण करता है) पट्टिका , और कंसोल आउटपुट पट्टिका [15] - विजुअल प्रसारण-कक्ष परिणाम पंक्ति (2013 तक) के माध्यम से जारी है।विज़ुअल सी++ 4.0 में एमएफसी 4.0 सम्मिलित है, इसे विंडोज़ 95 और विंडोज़ एनटी के लिए प्रारूपित किया गया था। रिक्थ ( विंडोज़ 3.x/DOS) युक्ति के अधार की अनुमति देने के लिए,4.0 विजुअल सी++ 1.52 स्थापन सीडी के साथ समूह में आया। अवनिर्देश के माध्यम से उपलब्ध अद्यतन में विजुअल सी++ 4.1 सम्मिलित है, जो माइक्रोसॉफ्ट गेम एसडीके (बाद में X के समक्ष एसडीके के रूप में अलग से जारी किया गया) और विजुअल सी++ 4.2 के साथ आया। विजुअल सी++ 4.0 और एमएफसी 4.0 के बीच संस्करण संख्या समानता प्राप्त करने के लिए संस्करण संख्या 3.0 को छोड़ दिया गया था।[14]
  • विज़ुअल सी++ 4.2 ने विंडोज़ 3.x (Win32s) के विकास का समर्थन नहीं किया।[15] यह उपलब्ध मैक (कंप्यूटर) के लिए एक क्रॉस-प्लेटफ़ॉर्म संस्करण के साथ अंतिम संस्करण था और यह 2.x संस्करण से भिन्न था जिसमें यह सामर्थ्यपीसी निर्देश सेट के लिए कोड की भी अनुमति देता था।
  • विजुअल सी++ 5.0, जिसमें एमएफसी 4.21 सम्मिलित था और 1997-04-28 को जारी किया गया था,[13]4.2 से एक प्रमुख उन्नयन था।[16] चार संस्करणों में उपलब्ध: शिक्षा,[17] दक्षता,[18] उद्यम,[19] और आरआईएससी।[20]
  • विजुअल सी++ 6.0 (आमतौर पर वीसी6 के रूप में जाना जाता है), जिसमें एमएफसी 6.0 सम्मिलित था, 1998 में जारी किया गया था।[21][22] प्रदर्शन कुछ विवादग्रस्त था क्योंकि इसमें एमएफसी के लिए प्रत्याशित अद्यतन सम्मिलित नहीं था। विज़ुअल सी++ 6.0 अभी भी पर्याप्त लोकप्रिय है और अक्सर रिक्थ युक्ति को बनाए रखने के लिए उपयोग किया जाता है। हालाँकि,यहाँ विंडोज़ एक्सपी के तहत इस संस्करण के साथ समस्याएँ हैं, विशेष रूप से दोषमार्जन प्रणाली के तहत (उदाहरण के लिए, स्थिर चर के मान प्रदर्शित नहीं होते हैं)। दोषमार्जन समस्याओं को विजुअल सी++ 6.0 प्रसंस्कारित्र संकुल नामक भाग से हल किया जा सकता है।[23] संस्करण संख्या: 12.00.8804
  • विज़ुअल सी++ .एनईटी 2002 (विज़ुअल सी++ 7.0 के रूप में भी जाना जाता है), जिसमें एमएफसी 7.0 सम्मिलित था, 2002 में लिंक टाइम कोड जनरेशन और दोषमार्जन रनटाइम चेक, .एनईटी 1.0, और विजुअल सी# और व्यवस्थित सी++ के अधार के साथ जारी किया गया था। नए उपयोगकर्ता अंतरापृष्ठ विज़ुअल आधार रूप के कई व्यस्त उपाय और अभिसमय का उपयोग किया, जो सी++ विकास के बीच इसकी कुछ अलोकप्रियता के लिए जिम्मेदार है।[citation needed] संस्करण संख्या: 13.00.9466
  • विज़ुअल सी++ .एनईटी 2003 (विज़ुअल सी++ 7.1 के रूप में भी जाना जाता है), जिसमें एमएफसी 7.1 सम्मिलित था, 2003 में .एनईटी 1.1 के साथ जारी किया गया था और यह विजुअल सी++ .एनईटी 2002 का एक प्रमुख उन्नयन था। इसे विज़ुअल सी++ .एनईटी 2002 का एक पट्टी माना गया था। परिणामस्वरूप, विजुअल प्रसारण-कक्ष .एनईटी 2003 के अंग्रेजी भाषा के उन्नयन संस्करण को विजुअल प्रसारण-कक्ष .एनईटी 2002 के अंग्रेजी भाषा के संस्करण के स्वामियों के लिए न्यूनतम लागत पर भेज दिया गया। योजनापूर्ण के रूप में विंडोज 95 और एनटी 4.0 का अधार करने वाला यह अंतिम संस्करण था (विजुअल सी++ 2005 के साथ बनाए गए फंक्शन योग्यों में कर्नेल32.डीएलएल में कार्य IsDebuggerPresent का उद्धरण है जो केवल विंडोज 98 और बाद में उपस्थित है)।।[citation needed] संस्करण संख्या: 13.10.3077
  • विभिन्न संस्करणों में अंतःस्थापित विजुअल सी++[26] का उपयोग विंडोज सीई ऑपरेटिंग सिस्टम के कुछ संस्करणों के विकास के लिए किया गया था। प्रारंभ में इसमे विज़ुअल सी++ 6.0 में जोड़े गए उपकरणों से युक्त एक विकास परिवेश को प्रतिस्थापित किया। अंतः स्थापित विजुअल सी++ को माइक्रोसॉफ्ट विजुअल प्रसारण-कक्ष 2005 के द्वारा एक अलग विकास परिवेश के रूप में प्रतिस्थापित किया गया था।

32-बिट और 64-बिट संस्करण

  • विज़ुअल सी++ 2005 (विज़ुअल सी++ 8.0 के रूप में भी जाना जाता है), जिसमें एमएफसी 8.0 सम्मिलित था, नवंबर 2005 में जारी किया गया था। यह संस्करण .एनईटी 2.0 का समर्थन करता है और इसमें पिछले संस्करण (प्रबंधित सी++) को बदलने के उद्देश्य से .एनईटी संरचना (सी++/सीएलआई) को लक्षित सी++ का एक नया संस्करण सम्मिलित है। पिछले संस्करण (व्यवस्थित सी ++) को बदलने का। सीएलआई के लिए व्यवस्थित सी ++ अभी भी संकलनकर्ता विकल्पों के माध्यम से उपलब्ध है। इसने ओपनएमपी भी प्रस्तावित किया। विजुअल सी++ 2005 के साथ, माइक्रोसॉफ्ट ने समूह आधार सर्वर भी प्रस्तावित किया। विजुअल सी++ 8.0 में एमएफसी ऐप विज़ार्ड उपायो को संकलित करने में समस्याएँ हैं जो विजुअल प्रसारण-कक्ष 6.0 का उपयोग करके बनाए गए थे, इसलिए यदि पुनर्लेखन संभव नहीं है तो रिक्थ उपायो का रखरखाव मूल आईडीई के साथ जारी रखा जा सकता है। विज़ुअल सी++ 2005 विंडोज 98 और विंडोज़ एमई को लक्षित करने में सक्षम अंतिम संस्करण है।[24][25] एसपी1 संस्करण (14.00.50727.762) माइक्रोसॉफ्ट विंडोज़ एसडीके अद्यतन में भी उपलब्ध है।
  • विजुअल सी++ 2008 (जिसे विजुअल सी++ 9.0 के नाम से भी जाना जाता है) नवंबर 2007 में जारी किया गया था। यह संस्करण .एनईटी 3.5 का समर्थन करता है। सीएलई के लिए व्यवस्थित सी++ अभी भी संकलनकर्ता विकल्पों के माध्यम से उपलब्ध है। स्वतः निर्धारित रूप से, विज़ुअल सी++ 2008 रनटाइम (स्थैतिक और गतिशील लिंकिंग) के विरुद्ध संकलित सभी अनुप्रयोग केवल विंडोज़ 2000, विंडोज़ एक्सपी एसपी2 और बाद के संस्करण पर काम करेंगे।[26][27] वीसी9 के लिए एक आकृति संकुल जारी किया गया, जिसे बाद में एसपी1 में सम्मिलित किया गया, सी++ टीआर1 लाइब्रेरी विस्तृति के लिए अधार जोड़ा गया। एसपी1 संस्करण (15.00.30729.01) विंडोज 7 के लिए माइक्रोसॉफ्ट विंडोज एसडीके में भी उपलब्ध है।
  • विज़ुअल सी++ के कुछ संस्करणों ने आइटेनीयम 2 का समर्थन किया।
  • विजुअल सी++ 2010 (जिसे विजुअल सी++ 10.0 के रूप में भी जाना जाता है) 12 अप्रैल, 2010 को जारी किया गया था। यह बेहतर खुफियाज्ञान और संग्रह-पूर्ण अधार के लिए खुफियाज्ञान की जानकारी सहित स्रोत कोडके बारे में जानकारी संग्रहीत करने के लिए एसक्यूएल सर्वर कॉम्पैक्ट डेटाबेस का उपयोग करता है।[28] हालाँकि, विजुअल सी++ 2010 सी++/सीएलआई के लिए खुफियाज्ञान का समर्थन नहीं करता है।[29] यह संस्करण समानांतर प्रतिरूप लाइब्रेरी नामक एक सी++ समानांतर कंप्यूटिंग लाइब्रेरी जोड़ता है, सी ++ 11 के लिए आंशिक समर्थन, एडिसन प्रारुप समूह अग्रांत के आधार पर खुफियाज्ञान में काफी सुधार हुआ है,[30] और संकलनकर्ता और उत्पन्न कोड दोनों के प्रदर्शन में सुधार।[31] यह संस्करण .एनईटी 4.0 पर बनाया गया है, लेकिन मशीन कोड के संकलनकर्ता का समर्थन करता है। आंशिक सी++11 अधार में मुख्य रूप से छह संकलनक र्विशेषताएं सम्मिलित हैं:[32] लैम्ब्डा, प्रतिद्वंद्विता संदर्भ, स्वत:, उतार-चढ़ाव, स्टेटिक_एसर्ट, और nullptr। सी++11 लाइब्रेरी सुविधाओं का भी समर्थन करता है (उदाहरण के लिए, TR1 घटकों को std::tr1 नाम स्थान से सीधे std नाम स्थान पर ले जाना)। परिवर्तन सांचा पर भी विचार किया गया था, लेकिन कम प्राथमिकता होने के कारण कुछ भविष्य के संस्करण तक देरी हुई, जो इस तथ्य का मूल रूप है कि, अन्य महंगाई-से-कार्यान्वित सुविधाओं (लैम्ब्डा, रावल्यू संदर्भ) के विपरीत, बहुसंख्यक संकलनकर्ता अन्तिम उपयोगकर्ताओं के बजाय परिवर्तन सांचा केवल लाइब्रेरी लेखकों के अल्पसंख्यक को लाभान्वित करेंगे। अधिकांश संकलक अंतिम उपयोगकर्ताओं के बजाय लेखक।[33] अप्राप्ति रूप से, विजुअल सी++ 2010 रनटाइम के विरुद्ध संकलित सभी अनुप्रयोग केवल विंडोज़ एक्सपी एसपी2 और बाद के संस्करण पर काम करते हैं। आरटीएम संस्करण (16.00.30319) विंडोज़ 7 और .एनईटी संरचना4 (Winएसडीके v7.1) के लिए विंडोज एसडीके में भी उपलब्ध है।[34] एसपी1 संस्करण (16.00.40219) विजुअल प्रसारण-कक्ष 2010 जाँच संकुल1 के हिस्से के रूप में या विंडोज़ एसडीके 7.1 के लिए माइक्रोसॉफ्ट विजुअल सी++ 2010 जाँच संकुल 1 संकलनकर्ता अद्यतन के माध्यम से उपलब्ध है।[35]
  • विज़ुअल सी++ 2012 (विज़ुअल सी++ 11.0 के रूप में भी जाना जाता है) 15 अगस्त, 2012 को जारी किया गया था। इसमें बेहतर सी++11 अधार और विंडोज रनटाइम विकास के लिए अधार सम्मिलित है।[36]
  • विजुअल सी++ 2013 (जिसे विजुअल सी++ 12.0 के रूप में भी जाना जाता है) 17 अक्टूबर, 2013 को जारी किया गया था। यह आगे सी++11 और सी99 अधार की सुविधा है, और एक REST एसडीके प्रस्तुत करता है।[37]
  • विजुअल सी++ 2015 (जिसे विजुअल सी++ 14.0 के नाम से भी जाना जाता है) 20 जुलाई, 2015 को जारी किया गया था।[38] इसमें बेहतर सी++ 11/14/17 का अधार है।[39] माइक्रोसॉफ्ट से किसी भी घोषणा के बिना, विजुअल प्रसारण-कक्ष 2015 अद्यतन 2 मे संकलित बायनेरिज़ में दूरमापी कॉल उत्पन्न करना शुरू कर दिया। कुछ उपयोगकर्ताओं द्वारा इस समस्या के बारे में माइक्रोसॉफ्ट से संपर्क करने के बाद, माइक्रोसॉफ्ट ने कहा कि वे भविष्य के विजुअल प्रसारण-कक्ष 2015 अद्यतन 3 के साथ संकलन करते समय इन दूरमापी कॉलों को हटा देंगे।[40][41] विज़ुअल प्रसारण-कक्ष 2015 अद्यतन 3 में विज़ुअल सी ++ सीआरटी स्थिर लाइब्रेरी से जाँच फ़ंक्शन को हटा दिया गया था।[citation needed]
  • विज़ुअल सी++ 2017 (विज़ुअल सी++ 14.1 के रूप में भी जाना जाता है) 7 मार्च, 2017 को जारी किया गया था।[42]
  • विजुअल सी++ 2019 (जिसे विजुअल सी++ 14.20 के नाम से भी जाना जाता है) 2 अप्रैल, 2019 को जारी किया गया था।[43]
  • विजुअल सी++ 2022 (जिसे विजुअल सी++ 14.30 के नाम से भी जाना जाता है) 8 नवंबर, 2021 को जारी किया गया था।[44]


आंतरिक संस्करण क्रमांकन

पूर्वनिर्धारित मैक्रो_MSC_VER विज़ुअल सी++ संकलनकर्ता के प्रमुख और लघु संस्करण संख्याओं को इंगित करता है। मैक्रो का मान एक पूर्णांक शाब्दिक है जिसमें अंतिम दो अंक लघु संस्करण संख्या को इंगित करते हैं और पूर्ववर्ती अंक प्रमुख संस्करण संख्या को इंगित करते हैं।

विजुअल प्रसारण-कक्ष 2017 से शुरुआत करते हुए, _MSC_VER हर विज़ुअल सी++ टूलसेट अद्यतन पर मोनोटोनिक रूप से वृद्धि की जाती है।[45] इस प्रकार, उदाहरण के लिए, एमएसवीसी संस्करण 14.11 जो विजुअल प्रसारण-कक्ष 2017 संस्करण 15.3 साथ आता है, _MSC_VER को1911 पर सेट करता है|माइक्रोसॉफ्ट _MSC_VER के मान का परीक्षण करने के लिए >= प्रचालक का उपयोग करने की सलाह देता है।

माइक्रोसॉफ्ट विज़ुअल सी और सी ++ संकलनकर्ता के प्रत्येक संस्करण से जुड़े एमएसवीसी संस्करणों की एक तालिका निम्नलिखित है।

एमएससी संस्करण
एमएससी संस्करण _MSC_VER
1.0 100
2.0 200
3.0 300
4.0 400
5.0 500
6.0 600
7.0 700
एमएससी++ संस्करण
एमएससी _MSC_VER
1.0 800
2.0 900
4.0 1000 (4.0)
4.2 1020 (4.2)
5.0 1100 (विजुअल प्रसारण-कक्ष 5.0)
6.0 1200 (विजुअल प्रसारण-कक्ष 6.0)
7.0 1300 (विजुअल प्रसारण-कक्ष 2002 7.0)
7.1 1310 (विजुअल प्रसारण-कक्ष 2003 7.1)
8.0 1400 (विजुअल प्रसारण-कक्ष 2005 8.0)
9.0 1500 (विजुअल प्रसारण-कक्ष 2008 9.0)
10.0 1600 (विजुअलप्रसारण-कक्ष2010 10.0)
11.0 1700 (विजुअल प्रसारण-कक्ष 2012 11.0)
12.0 1800 (विजुअल प्रसारण-कक्ष 2013 12.0)
14.0 1900 (विजुअल प्रसारण-कक्ष 2015 14.0)
विजुअल प्रसारण-कक्ष 2017
14.1 1910 (संस्करण15.0 + 15.1 + 15.2)
14.11 1911 (संस्करण15.3)
14.12 1912 (संस्करण15.5)
14.13 1913 (संस्करण15.6)
14.14 1914 (संस्करण15.7)
14.15 1915 (संस्करण15.8)
14.16 1916 (संस्करण15.9)
विजुअल प्रसारण-कक्ष 2019
14.20 1920 (संस्करण16.0)
14.21 1921 (संस्करण16.1)
14.22 1922 (संस्करण16.2)
14.23 1923 (संस्करण16.3)
14.24 1924 (संस्करण16.4)
14.25 1925 (संस्करण16.5)
14.26 1926 (संस्करण16.6)
14.27 1927 (संस्करण16.7)
14.28 1928 (संस्करण16.8 + 16.9)
14.29 1929 (संस्करण16.10 + 16.11)
विजुअल प्रसारण-कक्ष 2022
14.30 1930 (संस्करण17.0)
14.31 1931 (संस्करण17.1)
14.32 1932 (संस्करण17.2)
14.33 1933 (संस्करण17.3)
14.34 1934 (संस्करण17.4)

.ये संस्करण संख्याएँ विजुअल सी++ संकलनकर्ता और लाइब्रेरी की प्रमुख संस्करण संख्या को संदर्भित करती हैं, जैसा कि संस्थापन निर्देशिकाओं से देखा जा सकता है। यह विजुअल प्रसारण-कक्ष प्रकाशन के नाम पर वर्ष का उल्लेख नहीं करता है। विस्तृत सूची उपलब्ध है।[46][47] ध्यान दें कि सी ++ संकलनकर्ता साध्य योग्य संस्करण _MSC_VER से मेल खाता है और विज़ुअल सी++ परिणाम के संस्करण से भिन्न है। उदाहरण के लिए 14.22 (विजुअल प्रसारण-कक्ष 2019 16.2.5) में सम्मिलित Cl.exe इसके संस्करण को 19.22.27905 के रूप में संदेश करता है यदि बिना तर्क के चलाया जाता है।

विकसित संख्या के बारे में अतिरिक्त जानकारी के लिए 1200 से परिभाषित एक _MSC_FULL_VER मान भी है।।

अनुरूपता

एबीआई

विज़ुअल सी++ संकलनकर्ता एबीआई प्रमुख संकलनकर्ता प्रकाशन के बीच ऐतिहासिक दृष्टि से बदल गया है।[48] यह विशेष रूप से एसटीएल पात्रो की स्थिति में है, जहां संकलनकर्ता प्रकाशन के बीच पात्र आकार बहुत भिन्न होते हैं।[49] इसलिए माइक्रोसॉफ्ट मापांक सीमाओं पर सी ++ इंटरफेस का उपयोग करने के खिलाफ अनुशंसा करता है जब कोई भिन्न संकलनकर्ता संस्करण का उपयोग करके संकलित क्लाइंट कोड को सक्षम करना चाहता है। सी++ के बजाय, माइक्रोसॉफ्ट सी [53] या COM[54] का उपयोग करने की अनुशंसा करता है[50] जो संकलनकर्ता प्रकाशन के बीच स्थिर एबीआई रखने के लिए प्रारूपित किया गया है।

सभी 14.x एमएसवीसी प्रकाशन में एक स्थिर एबीआई है, [55] [51] और इन संस्करणों के साथ निर्मित बायनेरिज़ को आगे-संगत तरीके से मिलाया जा सकता है, निम्नलिखित प्रतिबंधों को ध्यान में रखते हुए:

  • उपयोग किया जाने वाला टूलसेट संस्करण किसी भी श्रृंखलित बायनेरिज़ को बनाने के लिए उपयोग किए जाने वाले उच्चतम टूलसेट संस्करण के बराबर या उससे अधिक होना चाहिए।
  • एमएसवीसी पुनर्वितरण योग्य संस्करण किसी भी अनुप्रयोग घटक द्वारा उपयोग किए जाने वाले टूलसेट संस्करण के बराबर या उससे अधिक होना चाहिए।
  • /GL (संपूर्ण प्रोग्राम इष्टतमीकरण) के साथ संकलित स्थिर लाइब्रेरी या विषय फ़ाइलें संस्करणों के बीच बाइनरी संगत नहीं हैं और ठीक उसी टूलसेट का उपयोग करना चाहिए।

सी रनटाइम लाइब्रेरी

विज़ुअल सी++ सी रनटाइम लाइब्रेरी के विभिन्न संस्करणों के साथ आता है।[52] इसका अर्थ है कि उपयोगकर्ता अपने कोड को किसी भी उपलब्ध लाइब्रेरी के साथ संकलित कर सकते हैं। हालांकि, एक ही प्रोग्राम में विभिन्न घटकों (DLL, EXE) का उपयोग करते समय कुछ उत्पन्न हो सकता हैं। एक विशिष्ट उदाहरण विभिन्न लाइब्रेरी (कंप्यूटिंग) का उपयोग करने वाला एक प्रोग्राम है। उपयोगकर्ता को प्रोग्राम के सभी घटकों के लिए एक ही सी रन-टाइम का उपयोग करना चाहिए जब तक कि निहितार्थ समझ में न आए। माइक्रोसॉफ्ट संभावित समस्याओं से बचने के लिए मल्टीथ्रेडेड सक्रिय शृंखला लाइब्रेरी (/MD या/MDd संकलनकर्ता विकल्प) का उपयोग करने की अनुशंसा करता है।[52]


पॉज़िक्स

हालाँकि माइक्रोसॉफ्ट का सीआरटी पॉज़िक्स इंटरफेस के एक बड़े उप-सेट को लागू करता है, विजुअल सी++ संकलनकर्ता व्यतिक्रम रूप से ऐसे कार्यों के हर उपयोग पर एक चेतावनी देगा। तर्क यह है कि सी और सी ++ मानकों को कार्यान्वयन-परिभाषित इंटरफेस से पहले एक अधोयोजक पूर्वयोजन की आवश्यकता होती है, इसलिए इन कार्यों का उपयोग गैर-मानक है।[53] हालाँकि, सिस्टम जो वास्तव में पॉज़िक्स - संगत हैं, वे इन रेखांकित नामों को स्वीकार नहीं करेंगे, और इसके बजाय केवल चेतावनी को बंद करना अधिक सुवाहय है |

सी

यद्यपि परिणाम सी प्रोग्रामिंग भाषा के लिए एक आईडीई के रूप में उत्पन्न हुआ, कई वर्षों तक उस भाषा के लिए संकलक का अधार केवल मानक सी के मूल संस्करण के अनुरूप था, जो 1989 से दिनांकन कर रहा था, लेकिन मानक सी99 संशोधन नहीं था। इसके प्रकाशन के एक दशक से भी अधिक समय बाद, 2011 में भी सी99 का समर्थन करने की कोई योजना नहीं थी।[54] विजुअल सी++ 2013 मे अंततः अपने सी मोड में विभिन्न सी99 विशेषताओं के लिए अधार जोड़ा (नामांकित प्रारंभकर्ता, यौजिक दास्र्स्ती और _Bool प्रकार सहित),[55][59] हालांकि यह अभी भी पूरा नहीं हुआ था।[56] विज़ुअल सी++ 2015 ने सी99 मानक लाइब्रेरी के पूर्ण आधार के साथ सी99 आधार में और सुधार किया, उन विशेषताओं को छोड़कर जिनके लिए सी99 भाषा सुविधाओं की आवश्यकता होती है जो अभी तक संकलक द्वारा आधारित नहीं हैं।[57] मानक के सी11 संशोधन से अधिकांश परिवर्तन अभी भी विजुअल सी++ 2017 द्वारा आधारित नहीं हैं।[58] उदाहरण के लिए,_Generic संकेत शब्द के माध्यम से सामान्य चयन संकलनकर्ता द्वारा आधारित नहीं हैं और परिणामस्वरूप सिंटैक्स त्रुटि होती है।[59] प्रीप्रोसेसर को 2018 में सी11 के साथ जांच किया गया था:[60]

पूर्ण C11 अनुरूपता हमारे दिशानिर्देश पर है,और प्रीप्रोसेसर को अद्यतीकरण करना उस प्रक्रिया का पहला चरण है। C11 _Generic विशेषता वास्तव में प्रीप्रोसेसर का हिस्सा नहीं है, इसलिए इसे अभी तक लागू नहीं किया गया है। जब कार्यान्वित किया जाता है तो मुझे आशा है कि पारंपरिक या अद्यतन प्रीप्रोसेसर तर्क का उपयोग किए जाने पर सुविधा स्वतंत्र रूप से काम करेगी।

_फरवरी 2020 तक एमएसवीसी को _Generic समर्थन दिया गया है, यह स्पष्ट नहीं है कि यह कब शिप होगा।[61] सितंबर 2020 में, माइक्रोसॉफ्ट ने एमएसवीसी में सी11 और सी17 मानकों के आधार की घोषणा की।[62]


सी ++

व्यतिक्रम समायोजन के साथ एमएसवीसी दो-चरण नाम खोज नहीं करता है जो इसे अमान्य कोड की एक विस्तृत श्रृंखला को फ़्लैग करने से रोकता है। अधिकांश जाँचो को टेम्प्लेट उदाहरणीकरण के लिए स्थगित कर दिया जाता हैं। अधिक हाल के संस्करण इस गतिविधि का समाधान करते हैं, लेकिन इसे कमांड-लाइन विकल्प द्वारा सक्षम करने की आवश्यकता है /permissive-.[63]


संदर्भ

  1. Lextrait, Vincent (January 2010). "The Programming Languages Beacon, v10.0". Archived from the original on 30 May 2012. Retrieved 14 March 2010.
  2. "Do I need these Microsoft Visual C++ redistributables?". Ask Leo!. Retrieved 2012-11-18.
  3. Computer Language - Issue 06 (1985-02)(CL Publications)(US). February 1985.
  4. Leibson, Steve (1985-02-01). "Software Reviews: Expert team analyzes 21 C compilers". Computer Language. Retrieved 2020-06-05.
  5. Ladd, Scott Robert (August 1, 1990). "Optimizing With Microsoft C 6.0".
  6. Retrieved from http://support.microsoft.com/kb/196831.
  7. 7.0 7.1 "Visual C++ is a strong development tool". InfoWorld. June 21, 1993. p. 94.
  8. "Rival DOS Extenders debut at show". InfoWorld. March 1, 1993. p. 18.
  9. "Visual C++ 1.5 integrates OLE, ODBC". InfoWorld. November 8, 1993. p. 5.
  10. "Microsoft set to prerelease 32-bit Visual C++". InfoWorld. July 19, 1993. p. 12.
  11. "C++ IDEs evolve". InfoWorld. April 4, 1994. p. 79.
  12. "Microsoft Visual C++ Strategy".
  13. 13.0 13.1 "Obsolete Products". Archived from the original on 2005-08-14.
  14. "History of Visual Studio (Part 3)".
  15. "Major Changes from Visual C++ 4.0 to 4.2". Archived from the original on 2010-02-28. Retrieved 2018-04-18.
  16. "Major Changes from Visual C++ 4.2 to 5.0".
  17. "Microsoft Visual C++ 5.0 Learning Edition". Archived from the original on April 27, 1999.
  18. "Microsoft Visual C++ 5.0 Professional Edition". Archived from the original on April 27, 1999.
  19. "Microsoft Visual C++ 5.0 Enterprise Edition". Archived from the original on April 17, 1999.
  20. "Microsoft Visual C++ 5.0 RISC Edition". Archived from the original on April 29, 1999.
  21. Shields, Nathan P. (June 8, 2018). "Criminal Complaint". United States Department of Justice. p. 128. This alone is not a dispositive link, as Visual C++ 6.0, released in 1998, still has proponents mostly because it does not require the installation of Microsoft's .NET framework in order to run, as later versions of Visual C++ do.
  22. "Major Changes from Visual C++ 5.0 to 6.0". Archived from the original on September 14, 2008.
  23. This page stresses that Users must also be running Windows 98, Windows NT 4.0, or Windows 2000. Retrieved from http://msdn2.microsoft.com/en-us/vstudio/aa718349.aspx.
  24. How to: Modify WINVER and _WIN32_WINNT
  25. Breaking Changes
  26. Windows Platforms (CRT)
  27. "Visual C++ 2008 Breaking Changes".
  28. Visual C++ Team Blog. "IntelliSense, part 2: The Future". Retrieved March 12, 2008.
  29. "Why IntelliSense is not supported for C++/CLI in Visual Studio 2010". Retrieved March 13, 2011.
  30. Visual C++ Team Blog (27 May 2009). "Rebuilding Intellisense".
  31. Visual C++ Team Blog. "Visual C++ Code Generation in Visual Studio 2010".
  32. "C++0x Core Language Features In VC10: The Table".
  33. "Stephan T. Lavavej: Everything you ever wanted to know about nullptr".
  34. Microsoft Windows SDK Blog. "Released: Windows SDK for Windows 7 and .NET Framework 4".
  35. FIX: Visual C++ compilers are removed when you upgrade Visual Studio 2010 Professional or Visual Studio 2010 Express to Visual Studio 2010 SP1 if Windows SDK v7.1 is installed
  36. "What's New for Visual C++ in Visual Studio 2012". Microsoft Developer Network. Microsoft. Retrieved September 20, 2015.
  37. "What's New for Visual C++ in Visual Studio 2013". Microsoft Developer Network. Microsoft. Retrieved September 20, 2015.
  38. Eric Battalio (July 20, 2015). "Visual Studio 2015 RTM Now Available". Visual C++ Team Blog. Microsoft.
  39. Stephan T. Lavavej (June 19, 2015). "C++11/14/17 Features In VS 2015 RTM". Visual C++ Team Blog. Microsoft.
  40. Reviewing Microsoft's Automatic Insertion of Telemetry into C++ Binaries
  41. "Visual Studio adding telemetry function calls to binary? • /r/cpp". reddit. 7 May 2016. Retrieved 2016-08-17.
  42. Julia Liuson (March 7, 2017). "Announcing Visual Studio 2017 General Availability… and more". Visual Studio Team Blog. Microsoft.
  43. Amanda Silver (February 14, 2019). "Join us April 2nd for the Launch of Visual Studio 2019!". Visual Studio Team Blog. Microsoft.
  44. Amanda Silver (November 8, 2021). "Visual Studio 2022 now available". Visual Studio Team Blog. Microsoft.
  45. Reis, Gabriel Dos (October 5, 2016). "Visual C++ Compiler Version". C++ Team Blog (in English). Retrieved August 20, 2022.
  46. "Pre-defined Compiler Macros / Wiki / Compilers". sourceforge.net. Retrieved 2016-02-11.
  47. "Predefined macros". docs.microsoft.com. Retrieved 2021-12-06.
  48. Microsoft MSDN: Breaking Changes in Visual C++
  49. Microsoft MSDN: Containers (Modern C++)
  50. Microsoft MSDN: Portability At ABI Boundaries (Modern C++)
  51. docs.microsoft.com: C++ binary compatibility between Visual Studio 2015, 2017, and 2019
  52. 52.0 52.1 C Run-Time Libraries
  53. "Compatibility". Microsoft: CRT library features (in English).
  54. "C99 support". Microsoft Connect. Archived from the original on 2016-03-04. Retrieved 2015-09-21.
  55. "What's New for Visual C++ in Visual Studio 2013". Microsoft Developer Network. Microsoft.
  56. Pat Brenner (July 19, 2013). "C99 library support in Visual Studio 2013". Visual C++ Team Blog. Microsoft.
  57. "What's New for Visual C++ in Visual Studio 2015". Microsoft Developer Network. Microsoft.
  58. "Walkthrough: Compile a C program on the command line". Visual C++ Documentation. Microsoft.
  59. "MSVC 2017 does not support _Generic (type generic macros) in C".
  60. Luvsanbat, Bat-Ulzii (July 6, 2018). "MSVC Preprocessor Progress towards Conformance". Microsoft Developer Network. Archived from the original on 8 Jan 2019.
  61. "C++20 Features and Fixes". reddit. July 3, 2020.
  62. "C11 and C17 Standard Support Arriving in MSVC". September 14, 2020.
  63. "Two-phase name lookup support comes to MSVC". 2017-09-11.


अग्रिम पठन


बाहरी संबंध