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

From Vigyanwiki
No edit summary
Line 15: Line 15:
| website = {{URL|https://docs.microsoft.com/en-us/cpp/}}
| website = {{URL|https://docs.microsoft.com/en-us/cpp/}}
}}
}}
'''माइक्रोसॉफ्ट विजुअल सी ++''' (MSVC) माइक्रोसॉफ्ट द्वारा [[सी]] ,[[सी]] [[++]] और [[सी++/सीएक्स प्रोग्रामिंग भाषाओं]] के लिए एक अनुभाषक (कंप्यूटर) है। MSVC [[मालिकाना सॉफ्टवेयर|स्वामित्व  सॉफ्टवेयर]] है; यह मूल रूप से एक खुद को साबित करने वाला प्रोग्राम का सँयोजन था लेकिन बाद में [[माइक्रोसॉफ्ट]] [[विज़ुअल प्रसार कक्ष]] का एक हिस्सा बन गया और [[ट्रायलवेयर]], [[फ्रीवेयर]] दोनों रूपों में उपलब्ध कराया गया। इसमें C++ कोड के विकास और डिबगिंग के लिए उपकरण हैं, विशेष रूप से विंडोज़ API, DirectX और .NET के लिए लिखे गए कोड।
'''माइक्रोसॉफ्ट विजुअल सी ++''' (MSVC) माइक्रोसॉफ्ट द्वारा [[सी]] ,[[सी]] [[++]] और [[सी++/सीएक्स प्रोग्रामिंग भाषाओं]] के लिए एक अनुभाषक (कंप्यूटर) है। MSVC [[मालिकाना सॉफ्टवेयर|स्वामित्व  सॉफ्टवेयर]] है; यह मूल रूप से एक खुद को साबित करने वाला प्रोग्राम का सँयोजन था लेकिन बाद में [[माइक्रोसॉफ्ट]] [[विज़ुअल प्रसार कक्ष]] का एक हिस्सा बन गया और [[ट्रायलवेयर]], [[फ्रीवेयर]] दोनों रूपों में उपलब्ध कराया गया। इसमें C++ कोड के [[विकास]] और [[डिबगिंग]] के लिए उपकरण हैं, विशेष रूप से [[विंडोज़ AP]]I, [[DirectX]] और .[[NET]] के लिए लिखे गए कोड।


कई [[अनुप्रयोग प्रक्रिया सामग्री]] को ठीक से काम करने के लिए [[पुनर्वितरण]] योग्य विज़ुअल C++ रनटाइम लाइब्रेरी पैकेज की आवश्यकता होती है। इन पैकेजों को अक्सर उनके द्वारा समर्थित अनुप्रयोगों से अलग से स्थापित किया जाता है, जिससे कई अनुप्रयोगों को केवल एक स्थापना के साथ पैकेज का उपयोग करने में सक्षम बनाया जाता है। ये विज़ुअल C++ पुनर्वितरण योग्य और रनटाइम पैकेज ज्यादातर मानक [[पुस्तकालय (कम्प्यूटिंग)]] के लिए स्थापित किए जाते हैं जिनका उपयोग कई एप्लिकेशन करते हैं।<ref name="askleo">[http://ask-leo.com/do_i_need_these_microsoft_visual_c_redistributables.html "Do I need these Microsoft Visual C++ redistributables?"]. Ask Leo!. Retrieved 2012-11-18.</ref>
कई अनुप्रयोगों को ठीक से काम करने के लिए [[पुनर्वितरण]] योग्य विज़ुअल C++ क्रम लाइब्रेरी पैकेज की आवश्यकता होती है। इन पैकेजों को प्रायः उनके द्वारा समर्थित अनुप्रयोगों से अलग स्थापित किया जाता है, जिससे कई अनुप्रयोगों को केवल एक संस्थापन के साथ पैकेज का उपयोग करने में सक्षम बनाया जाता है। ये विज़ुअल C++ पुनर्वितरण योग्य और क्रम पैकेज ज्यादातर मानक [[लाइब्रेरी]] के लिए स्थापित किए जाते हैं जिनका उपयोग कई अनुप्रयोगों के लिए करते हैं।<ref name="askleo">[http://ask-leo.com/do_i_need_these_microsoft_visual_c_redistributables.html "Do I need these Microsoft Visual C++ redistributables?"]. Ask Leo!. Retrieved 2012-11-18.</ref>





Revision as of 13:26, 18 February 2023

Visual C++
Developer(s)Microsoft
Initial releaseFebruary 1993; 31 years ago (1993-02)[1]
Stable release
14.32.31326 / May 10, 2022
Written inC++[2]
Operating systemWindows
PlatformIA-32, x86-64 and ARM
Available inEnglish, Chinese (Simplified & Traditional), Czech, French, German, Italian, Japanese, Korean, Polish, Portuguese (Brazilian), Russian, Spanish, Turkish
TypeCompiler
LicenseTrialware and freeware
Websitedocs.microsoft.com/en-us/cpp/

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

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


इतिहास

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


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

  • माइक्रोसॉफ्ट सी 1.0, जाली सी पर आधारित, 1983 में माइक्रोसॉफ्ट का पहला सी उत्पाद था। यह सी प्रोग्रामिंग लैंग्वेज | के एंड आर सी अनुरूप नहीं था।
  • सी 2.0 ने बड़े मॉडल समर्थन को जोड़ा, कोड सेगमेंट और डेटा सेगमेंट दोनों के लिए 1MiB तक की अनुमति दी। [4]
  • C 3.0 Microsoft के अंदर विकसित पहला संस्करण था।[5] इस संस्करण का उद्देश्य K&R और बाद के ANSI मानक के साथ अनुकूलता था। 1984 की शुरुआत में इसका उपयोग Microsoft (Microsoft Windows और Xenix विकास के लिए) के अंदर किया जा रहा था। इसे 1985 में एक उत्पाद के रूप में भेज दिया गया।
  • सी 4.0 ने अनुकूलन और कोड व्यू, एक स्रोत-स्तर डीबगर जोड़ा।
  • C 5.0 जोड़ा गया लूप ऑप्टिमाइजेशन और x86 मेमोरी मॉडल#मेमोरी मॉडल|'विशाल मेमोरी मॉडल' (ऐरे डेटा स्ट्रक्चर 64 KB से बड़ा) सपोर्ट। माइक्रोसॉफ्ट फोरट्रान और 80386 के लिए पहला 32-बिट कंपाइलर भी इस परियोजना का हिस्सा थे।
  • 1988 में जारी C 5.1 ने OS/2 1.x के लिए संकलन कार्यक्रमों की अनुमति दी।
  • C 6.0 1989 में जारी किया गया। इसमें प्रोग्रामर के कार्यक्षेत्र IDE, वैश्विक प्रवाह विश्लेषण, एक स्रोत ब्राउज़र और एक नया डीबगर जोड़ा गया, और एक वैकल्पिक C++ फ्रंट एंड शामिल किया गया।[6]
  • C/C++ 7.0 1992 में जारी किया गया था। C++ और Microsoft Foundation Classes (Microsoft Foundation Class Library) 1.0 के लिए अंतर्निहित समर्थन जोड़ा गया।[7]
  • विज़ुअल C++ 1.0, जिसमें MFC 2.0 शामिल था, 'विज़ुअल' C++ का पहला संस्करण था, जिसे फरवरी 1993 में रिलीज़ किया गया था। यह Cfront 2.1 के अनुरूप था[8] और दो संस्करणों में उपलब्ध है:[1]** मानक: विंडोज के लिए क्विकसी को बदल दिया गया।
    • पेशेवर: C/C++ 7.0 को बदला गया। डॉस और विंडोज अनुप्रयोगों, एक अनुकूलन कंपाइलर, एक स्रोत प्रोफाइलिंग (कंप्यूटर प्रोग्रामिंग), और विंडोज 3.1 एसडीके दोनों को बनाने की क्षमता शामिल है।[8]Phar Lap (कंपनी) 286 DOS एक्सटेंडर लाइट भी शामिल थी।[9]
  • विजुअल C++ 1.5 को दिसंबर 1993 में जारी किया गया था, जिसमें MFC 2.5 शामिल था, और MFC को जोडकर परनिगरानी और उद्देश् य 2.0 और डेटाबेस कनेक्टिविटी खोलें सपोर्ट जोड़ा गया था।[10] यह Visual C++ का पहला संस्करण था जो केवल CD-ROM पर आया था।
    • दृश्य C++ 1.51 और 1.52 सदस्यता सेवा के भाग के रूप में उपलब्ध थे।
    • विजुअल C++ 1.52b 1.52 के समान है, लेकिन इसमें कंट्रोल डेवलपमेंट किट शामिल नहीं है।
    • Visual C++ 1.52c 1.5 का एक पैच किया हुआ संस्करण था। यह Microsoft Windows 3.x के लिए अंतिम और यकीनन सबसे लोकप्रिय विकास मंच है। यह Microsoft डेवलपर नेटवर्क के माध्यम से उपलब्ध है।

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

  • Visual C++ 1.0 (मूल नाम: Visual C++ 32-बिट संस्करण) फ्लैट मेमोरी मॉडल#फ्लैट मेमोरी मॉडल|Intel 386 आर्किटेक्चर के लिए 32-बिट विकास के लिए पहला संस्करण था।[11] यद्यपि Intel 286|16-बिट संस्करण 1.5 उपलब्ध होने पर जारी किया गया था, इसमें OLE2 और ODBC के लिए समर्थन शामिल नहीं था। यह Visual C++ 16/32-बिट सुइट नामक बंडल में भी उपलब्ध था, जिसमें Visual C++ 1.5 शामिल था।[12]
  • विज़ुअल C++ 2.0, जिसमें MFC 3.0 शामिल था, केवल 32-बिट वाला पहला संस्करण था। कई मायनों में, यह संस्करण अपने समय से आगे था, क्योंकि विंडोज 95, जिसका कोडनेम शिकागो था, अभी तक जारी नहीं किया गया था, और विंडोज एनटी के पास केवल एक छोटा सा बाजार हिस्सा था। Microsoft ने Visual C++ 1.5 को 2.x रिलीज़ के हिस्से के रूप में 2.1 तक शामिल और अपडेट किया, जिसमें Visual C++ 1.52 और कंट्रोल डेवलपमेंट किट (CDK) के 16-बिट और 32-बिट दोनों संस्करण शामिल थे। विजुअल C++ 2.x ने भी Win32s के विकास का समर्थन किया। यह Microsoft डेवलपर नेटवर्क के माध्यम से उपलब्ध है। एमआईपीएस आर्किटेक्चर और डीईसी अल्फा प्रोसेसर के साथ-साथ मैक (कंप्यूटर) (68000 निर्देश सेट) के लिए एक क्रॉस-प्लेटफॉर्म संस्करण के लिए विजुअल सी ++ 2.0 आरआईएससी संस्करण भी था।[13]
    • विजुअल C++ 2.1 और 2.2 सब्सक्रिप्शन के माध्यम से उपलब्ध 2.0 के लिए अपडेट थे।
  • विजुअल C++ 4.0, 1995-12-11 को जारी किया गया,[14] डेवलपर स्टूडियो आईडीई पेश किया। गैर-अतिव्यापी पैनलों-नेविगेशन पैनल, संयोजन संपादक/स्रोत स्तर डीबगर पैनल, और कंसोल आउटपुट पैनल का इसका तत्कालीन उपन्यास टाइल वाला लेआउट[15]- Microsoft Visual Studio उत्पाद लाइन (2013 तक) के माध्यम से जारी है। विज़ुअल C++ 4.0 में MFC 4.0 शामिल है, इसे Windows 95 और Windows NT के लिए डिज़ाइन किया गया था। लीगेसी (Windows 3.x/DOS) प्रोजेक्ट्स के समर्थन की अनुमति देने के लिए, 4.0 विजुअल C++ 1.52 इंस्टॉलेशन सीडी के साथ बंडल में आया। सब्सक्रिप्शन के माध्यम से उपलब्ध अपडेट में विजुअल C++ 4.1 शामिल है, जो माइक्रोसॉफ्ट गेम SDK (बाद में DirectX SDK के रूप में अलग से जारी किया गया) और विजुअल C++ 4.2 के साथ आया। Visual C++ 4.0 और MFC 4.0 के बीच संस्करण संख्या समानता प्राप्त करने के लिए संस्करण संख्या 3.0 को छोड़ दिया गया था।[16]
  • विज़ुअल C++ 4.2 ने Windows 3.x (Win32s) विकास का समर्थन नहीं किया।[17] यह उपलब्ध मैक (कंप्यूटर) के लिए एक क्रॉस-प्लेटफ़ॉर्म संस्करण के साथ अंतिम संस्करण था और यह 2.x संस्करण से भिन्न था जिसमें यह PowerPC निर्देश सेट के लिए संकलन की भी अनुमति देता था।
  • विजुअल C++ 5.0, जिसमें MFC 4.21 शामिल था और 1997-04-28 को जारी किया गया था,[14]4.2 से एक प्रमुख उन्नयन था।[18] चार संस्करणों में उपलब्ध: सीखना,[19] पेशेवर,[20] उद्यम,[21] और आरआईएससी।[22]
  • विजुअल C++ 6.0 (आमतौर पर VC6 के रूप में जाना जाता है), जिसमें MFC 6.0 शामिल था, 1998 में जारी किया गया था।[23][24] रिलीज़ कुछ विवादास्पद थी क्योंकि इसमें MFC के लिए अपेक्षित अपडेट शामिल नहीं था। विज़ुअल C++ 6.0 अभी भी काफी लोकप्रिय है और अक्सर विरासत परियोजनाओं को बनाए रखने के लिए उपयोग किया जाता है। हालाँकि, Windows XP के तहत इस संस्करण के साथ समस्याएँ हैं, विशेष रूप से डिबगिंग मोड के तहत (उदाहरण के लिए, स्थिर चर के मान प्रदर्शित नहीं होते हैं)। डीबगिंग समस्याओं को Visual C++ 6.0 प्रोसेसर पैक नामक पैच से हल किया जा सकता है।[25] संस्करण संख्या: 12.00.8804
  • विज़ुअल C++ .NET 2002 (विज़ुअल C++ 7.0 के रूप में भी जाना जाता है), जिसमें MFC 7.0 शामिल था, 2002 में लिंक टाइम कोड जनरेशन और डिबगिंग रनटाइम चेक, .NET 1.0, और विज़ुअल C Sharp|Visual C# और प्रबंधित एक्सटेंशन के लिए समर्थन के साथ जारी किया गया था। सी++|प्रबंधित सी++। नए उपयोगकर्ता इंटरफ़ेस ने मूल दृश्य की कई हॉट कुंजियों और परंपराओं का उपयोग किया, जो C++ डेवलपर्स के बीच इसकी कुछ अलोकप्रियता के लिए जिम्मेदार है।[citation needed] संस्करण संख्या: 13.00.9466
  • विज़ुअल C++ .NET 2003 (विज़ुअल C++ 7.1 के रूप में भी जाना जाता है), जिसमें MFC 7.1 शामिल था, 2003 में .NET 1.1 के साथ जारी किया गया था और यह Visual C++ .NET 2002 का एक प्रमुख अपग्रेड था। इसे विज़ुअल C++ .NET का एक पैच माना गया था। 2002. तदनुसार, विजुअल स्टूडियो .NET 2003 के अंग्रेजी भाषा के उन्नयन संस्करण को विजुअल स्टूडियो .NET 2002 के अंग्रेजी भाषा के संस्करण के मालिकों के लिए न्यूनतम लागत पर भेज दिया गया। लक्ष्य के रूप में विंडोज 95 और एनटी 4.0 का समर्थन करने वाला यह अंतिम संस्करण था।[citation needed] संस्करण संख्या: 13.10.3077
  • एम्बेडेड विज़ुअल C++[26] विभिन्न संस्करणों में विंडोज सीई ऑपरेटिंग सिस्टम के कुछ संस्करणों के विकास के लिए उपयोग किया गया था। प्रारंभ में इसने विज़ुअल C++ 6.0 में जोड़े गए उपकरणों से युक्त एक विकास परिवेश को प्रतिस्थापित किया। eMbedded Visual C++ को Microsoft Visual Studio द्वारा एक अलग विकास परिवेश के रूप में प्रतिस्थापित किया गया था।

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

  • विज़ुअल C++ 2005 (विज़ुअल C++ 8.0 के रूप में भी जाना जाता है), जिसमें MFC 8.0 शामिल था, नवंबर 2005 में जारी किया गया था। यह संस्करण .NET 2.0 का समर्थन करता है और इसमें .NET फ्रेमवर्क (C++/CLI) के उद्देश्य से लक्षित C++ का एक नया संस्करण शामिल है। पिछले संस्करण (प्रबंधित सी ++) को बदलने का। सीएलआई के लिए प्रबंधित सी ++ अभी भी कंपाइलर विकल्पों के माध्यम से उपलब्ध है। इसने ओपनएमपी भी पेश किया। विजुअल C++ 2005 के साथ, माइक्रोसॉफ्ट ने टीम फाउंडेशन सर्वर भी पेश किया। Visual C++ 8.0 में MFC AppWizard प्रोजेक्ट्स को संकलित करने में समस्याएँ हैं जो Visual Studio 6.0 का उपयोग करके बनाए गए थे, इसलिए यदि पुनर्लेखन संभव नहीं है तो लीगेसी परियोजनाओं का रखरखाव मूल IDE के साथ जारी रखा जा सकता है। विज़ुअल सी++ 2005 विंडोज 98 और विंडोज़ मी को लक्षित करने में सक्षम अंतिम संस्करण है।[27][28] SP1 संस्करण (14.00.50727.762) Microsoft Windows SDK में भी उपलब्ध है।
  • विजुअल C++ 2008 (जिसे विजुअल C++ 9.0 के नाम से भी जाना जाता है) नवंबर 2007 में जारी किया गया था। यह संस्करण .NET 3.5 का समर्थन करता है। CLI के लिए प्रबंधित C++ अभी भी कंपाइलर विकल्पों के माध्यम से उपलब्ध है। डिफ़ॉल्ट रूप से, विज़ुअल C++ 2008 रनटाइम्स (स्थैतिक और गतिशील लिंकिंग) के विरुद्ध संकलित सभी एप्लिकेशन केवल Windows 2000, Windows XP SP2 और बाद के संस्करण पर काम करेंगे।[29][30] VC9 के लिए रिलीज़ किया गया फीचर पैक, जिसे बाद में SP1 में शामिल किया गया, C++ सी ++ तकनीकी रिपोर्ट 1 लाइब्रेरी एक्सटेंशन के लिए समर्थन जोड़ा गया। SP1 संस्करण (15.00.30729.01) Microsoft Windows SDK में भी उपलब्ध है।
  • विज़ुअल सी++ के कुछ संस्करणों ने इटेनियम 2 का समर्थन किया।
  • Visual C++ 2010 (जिसे Visual C++ 10.0 के रूप में भी जाना जाता है) 12 अप्रैल, 2010 को जारी किया गया था। यह बेहतर IntelliSense और कोड-पूर्ण समर्थन के लिए IntelliSense जानकारी सहित स्रोत कोड के बारे में जानकारी संग्रहीत करने के लिए एसक्यूएल सर्वर कॉम्पैक्ट डेटाबेस का उपयोग करता है।[31] हालाँकि, Visual C++ 2010 C++/CLI के लिए Intellisense का समर्थन नहीं करता है।[32] यह संस्करण समानांतर पैटर्न लाइब्रेरी नामक एक सी ++ समानांतर कंप्यूटिंग लाइब्रेरी जोड़ता है, सी ++ 11 के लिए आंशिक समर्थन, एडिसन डिजाइन समूह फ्रंट एंड के आधार पर इंटेलिसेन्स में काफी सुधार हुआ है,[33] और संकलक और उत्पन्न कोड दोनों के प्रदर्शन में सुधार।[34] यह संस्करण .NET 4.0 पर बनाया गया है, लेकिन मशीन कोड के संकलन का समर्थन करता है। आंशिक C++11 समर्थन में मुख्य रूप से छह संकलक विशेषताएं शामिल हैं:[35] लैम्ब्डा, प्रतिद्वंद्विता संदर्भ, ऑटो, decltype, static_assert, और nullptr। C++11 पुस्तकालय सुविधाओं का भी समर्थन करता है (उदाहरण के लिए, TR1 घटकों को std::tr1 नामस्थान से सीधे std नाम स्थान पर ले जाना)। वैराडिक टेम्पलेट पर भी विचार किया गया था, लेकिन कम प्राथमिकता होने के कारण कुछ भविष्य के संस्करण तक देरी हुई, जो इस तथ्य से उपजी है कि, अन्य महंगी-से-कार्यान्वयन सुविधाओं (लैम्ब्डा, रावल्यू संदर्भ) के विपरीत, वैरैडिक टेम्प्लेट केवल पुस्तकालय के एक अल्पसंख्यक को लाभान्वित करेंगे। अधिकांश संकलक अंत उपयोगकर्ताओं के बजाय लेखक।[36] डिफ़ॉल्ट रूप से, Visual C++ 2010 रनटाइम के विरुद्ध संकलित सभी एप्लिकेशन केवल Windows XP SP2 और बाद के संस्करण पर काम करते हैं। RTM संस्करण (16.00.30319) Microsoft Windows SDK|Windows SDK for Windows 7 और .NET Framework 4 (WinSDK v7.1) में भी उपलब्ध है।[37] SP1 संस्करण (16.00.40219) Visual Studio 2010 सर्विस पैक 1 के हिस्से के रूप में या Windows SDK 7.1 के लिए Microsoft Visual C++ 2010 सर्विस पैक 1 कंपाइलर अपडेट के माध्यम से उपलब्ध है।[38]
  • विज़ुअल C++ 2012 (विज़ुअल C++ 11.0 के रूप में भी जाना जाता है) 15 अगस्त, 2012 को जारी किया गया था। इसमें उन्नत C++11 समर्थन और विंडोज रनटाइम विकास के लिए समर्थन शामिल है।[39]
  • विजुअल C++ 2013 (जिसे विजुअल C++ 12.0 के रूप में भी जाना जाता है) 17 अक्टूबर, 2013 को जारी किया गया था। इसमें आगे C++11 और C99 समर्थन की सुविधा है, और एक प्रतिनिधि राज्य हस्तांतरण एसडीके पेश करता है।[40]
  • विजुअल C++ 2015 (जिसे विजुअल C++ 14.0 के नाम से भी जाना जाता है) 20 जुलाई, 2015 को जारी किया गया था।[41] इसमें बेहतर C++ 11/14/17 सपोर्ट है।[42] माइक्रोसॉफ्ट से किसी भी घोषणा के बिना, विजुअल स्टूडियो 2015 अपडेट 2 ने संकलित बायनेरिज़ में टेलीमेट्री कॉल उत्पन्न करना शुरू कर दिया। कुछ उपयोगकर्ताओं द्वारा इस समस्या के बारे में Microsoft से संपर्क करने के बाद, Microsoft ने कहा कि वे भविष्य के Visual Studio 2015 अद्यतन 3 के साथ संकलन करते समय इन टेलीमेट्री कॉलों को हटा देंगे।[43][44] विज़ुअल स्टूडियो 2015 अपडेट 3 में विज़ुअल सी ++ सीआरटी स्थिर पुस्तकालयों से विचाराधीन फ़ंक्शन को हटा दिया गया था।[citation needed]
  • विज़ुअल सी++ 2017 (विज़ुअल सी++ 14.1 के रूप में भी जाना जाता है) 7 मार्च, 2017 को जारी किया गया था।[45]
  • विजुअल C++ 2019 (जिसे विजुअल C++ 14.20 के नाम से भी जाना जाता है) 2 अप्रैल, 2019 को जारी किया गया था।[46]
  • विजुअल C++ 2022 (जिसे विजुअल C++ 14.30 के नाम से भी जाना जाता है) 8 नवंबर, 2021 को जारी किया गया था।[47]


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

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

विजुअल स्टूडियो 2017 से शुरुआत करते हुए, _MSC_VER हर विज़ुअल C++ टूलसेट अपडेट पर नीरस रूप से वृद्धि की जाती है।[48] इस प्रकार, उदाहरण के लिए, MSVC संस्करण 14.11 जो Visual Studio 2017 संस्करण 15.3 सेट के साथ आता है _MSC_VER को 1911. Microsoft उपयोग करने की अनुशंसा करता है >= ऑपरेटर के मूल्य का परीक्षण करने के लिए _MSC_VER.

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

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

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

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

अनुकूलता

एबीआई

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

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

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

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

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


पॉज़िक्स

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

सी

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

Full C11 conformance is on our roadmap, and updating the preprocessor is just the first step in that process. The C11 _Generic feature is not actually part of the preprocessor, so it has not yet been implemented. When implemented I expect the feature to work independently of if the traditional or updated preprocessor logic is used.

_Generic फरवरी 2020 तक MSVC को समर्थन देने के लिए प्रतिबद्ध है, यह स्पष्ट नहीं है कि यह कब शिप होगा।[65] सितंबर 2020 में, Microsoft ने MSVC में C11 और C17 मानकों के समर्थन की घोषणा की।[66]


सी ++

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


संदर्भ

  1. 1.0 1.1 "Visual C++ adds Windows support". InfoWorld. February 22, 1993. p. 17.
  2. Lextrait, Vincent (January 2010). "The Programming Languages Beacon, v10.0". Archived from the original on 30 May 2012. Retrieved 14 March 2010.
  3. "Do I need these Microsoft Visual C++ redistributables?". Ask Leo!. Retrieved 2012-11-18.
  4. Computer Language - Issue 06 (1985-02)(CL Publications)(US). February 1985.
  5. Leibson, Steve (1985-02-01). "Software Reviews: Expert team analyzes 21 C compilers". Computer Language. Retrieved 2020-06-05.
  6. Ladd, Scott Robert (August 1, 1990). "Optimizing With Microsoft C 6.0".
  7. Retrieved from http://support.microsoft.com/kb/196831.
  8. 8.0 8.1 "Visual C++ is a strong development tool". InfoWorld. June 21, 1993. p. 94.
  9. "Rival DOS Extenders debut at show". InfoWorld. March 1, 1993. p. 18.
  10. "Visual C++ 1.5 integrates OLE, ODBC". InfoWorld. November 8, 1993. p. 5.
  11. "Microsoft set to prerelease 32-bit Visual C++". InfoWorld. July 19, 1993. p. 12.
  12. "C++ IDEs evolve". InfoWorld. April 4, 1994. p. 79.
  13. "Microsoft Visual C++ Strategy".
  14. 14.0 14.1 "Obsolete Products". Archived from the original on 2005-08-14.
  15. Toth, Viktor (1996). "1". Visual C++ 4.0 unleashed. Indianapolis: SAMS Publishing. ISBN 9780672308741. Retrieved 26 July 2013.
  16. "History of Visual Studio (Part 3)".
  17. "Major Changes from Visual C++ 4.0 to 4.2". Archived from the original on 2010-02-28. Retrieved 2018-04-18.
  18. "Major Changes from Visual C++ 4.2 to 5.0".
  19. "Microsoft Visual C++ 5.0 Learning Edition". Archived from the original on April 27, 1999.
  20. "Microsoft Visual C++ 5.0 Professional Edition". Archived from the original on April 27, 1999.
  21. "Microsoft Visual C++ 5.0 Enterprise Edition". Archived from the original on April 17, 1999.
  22. "Microsoft Visual C++ 5.0 RISC Edition". Archived from the original on April 29, 1999.
  23. 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.
  24. "Major Changes from Visual C++ 5.0 to 6.0". Archived from the original on September 14, 2008.
  25. 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.
  26. Douglas Boling :Programming Microsoft Windows CE .NET, Third Edition Microsoft Press; 3rd edition (June 25, 2003) Paperback: 1264 pages ISBN 978-0735618848 - Companion CD with Microsoft eMbedded Visual C++ 4.0 Service Pack 2 Archived 2013-02-11 at archive.today
  27. How to: Modify WINVER and _WIN32_WINNT
  28. Breaking Changes
  29. Windows Platforms (CRT)
  30. "Visual C++ 2008 Breaking Changes".
  31. Visual C++ Team Blog. "IntelliSense, part 2: The Future". Retrieved March 12, 2008.
  32. "Why IntelliSense is not supported for C++/CLI in Visual Studio 2010". Retrieved March 13, 2011.
  33. Visual C++ Team Blog (27 May 2009). "Rebuilding Intellisense".
  34. Visual C++ Team Blog. "Visual C++ Code Generation in Visual Studio 2010".
  35. "C++0x Core Language Features In VC10: The Table".
  36. "Stephan T. Lavavej: Everything you ever wanted to know about nullptr".
  37. Microsoft Windows SDK Blog. "Released: Windows SDK for Windows 7 and .NET Framework 4".
  38. 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
  39. "What's New for Visual C++ in Visual Studio 2012". Microsoft Developer Network. Microsoft. Retrieved September 20, 2015.
  40. "What's New for Visual C++ in Visual Studio 2013". Microsoft Developer Network. Microsoft. Retrieved September 20, 2015.
  41. Eric Battalio (July 20, 2015). "Visual Studio 2015 RTM Now Available". Visual C++ Team Blog. Microsoft.
  42. Stephan T. Lavavej (June 19, 2015). "C++11/14/17 Features In VS 2015 RTM". Visual C++ Team Blog. Microsoft.
  43. Reviewing Microsoft's Automatic Insertion of Telemetry into C++ Binaries
  44. "Visual Studio adding telemetry function calls to binary? • /r/cpp". reddit. 7 May 2016. Retrieved 2016-08-17.
  45. Julia Liuson (March 7, 2017). "Announcing Visual Studio 2017 General Availability… and more". Visual Studio Team Blog. Microsoft.
  46. Amanda Silver (February 14, 2019). "Join us April 2nd for the Launch of Visual Studio 2019!". Visual Studio Team Blog. Microsoft.
  47. Amanda Silver (November 8, 2021). "Visual Studio 2022 now available". Visual Studio Team Blog. Microsoft.
  48. Reis, Gabriel Dos (October 5, 2016). "Visual C++ Compiler Version". C++ Team Blog (in English). Retrieved August 20, 2022.
  49. "Pre-defined Compiler Macros / Wiki / Compilers". sourceforge.net. Retrieved 2016-02-11.
  50. "Predefined macros". docs.microsoft.com. Retrieved 2021-12-06.
  51. Microsoft MSDN: Breaking Changes in Visual C++
  52. Microsoft MSDN: Containers (Modern C++)
  53. Microsoft MSDN: Portability At ABI Boundaries (Modern C++)
  54. Microsoft forum: Binary compatibility across Visual C++ versions Archived 2013-02-16 at archive.today
  55. docs.microsoft.com: C++ binary compatibility between Visual Studio 2015, 2017, and 2019
  56. 56.0 56.1 C Run-Time Libraries
  57. "Compatibility". Microsoft: CRT library features (in English).
  58. "C99 support". Microsoft Connect. Archived from the original on 2016-03-04. Retrieved 2015-09-21.
  59. "What's New for Visual C++ in Visual Studio 2013". Microsoft Developer Network. Microsoft.
  60. Pat Brenner (July 19, 2013). "C99 library support in Visual Studio 2013". Visual C++ Team Blog. Microsoft.
  61. "What's New for Visual C++ in Visual Studio 2015". Microsoft Developer Network. Microsoft.
  62. "Walkthrough: Compile a C program on the command line". Visual C++ Documentation. Microsoft.
  63. "MSVC 2017 does not support _Generic (type generic macros) in C".
  64. Luvsanbat, Bat-Ulzii (July 6, 2018). "MSVC Preprocessor Progress towards Conformance". Microsoft Developer Network. Archived from the original on 8 Jan 2019.
  65. "C++20 Features and Fixes". reddit. July 3, 2020.
  66. "C11 and C17 Standard Support Arriving in MSVC". September 14, 2020.
  67. "Two-phase name lookup support comes to MSVC". 2017-09-11.


अग्रिम पठन


बाहरी संबंध