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

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

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

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

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

 * माइक्रोसॉफ्ट सी 1.0, जाली सी पर आधारित, 1983 में माइक्रोसॉफ्ट का पहला सी उत्पाद था। यह सी प्रोग्रामिंग लैंग्वेज | के एंड आर सी अनुरूप नहीं था।
 * सी 2.0 ने बड़े मॉडल समर्थन को जोड़ा, कोड सेगमेंट और डेटा सेगमेंट दोनों के लिए 1MiB तक की अनुमति दी।
 * C 3.0 Microsoft के अंदर विकसित पहला संस्करण था। इस संस्करण का उद्देश्य 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++ फ्रंट एंड शामिल किया गया।
 * C/C++ 7.0 1992 में जारी किया गया था। C++ और Microsoft Foundation Classes (Microsoft Foundation Class Library) 1.0 के लिए अंतर्निहित समर्थन जोड़ा गया।
 * विज़ुअल C++ 1.0, जिसमें MFC 2.0 शामिल था, 'विज़ुअल' C++ का पहला संस्करण था, जिसे फरवरी 1993 में रिलीज़ किया गया था। यह Cfront 2.1 के अनुरूप था और दो संस्करणों में उपलब्ध है: ** मानक: विंडोज के लिए क्विकसी को बदल दिया गया।
 * पेशेवर: C/C++ 7.0 को बदला गया। डॉस और विंडोज अनुप्रयोगों, एक अनुकूलन कंपाइलर, एक स्रोत प्रोफाइलिंग (कंप्यूटर प्रोग्रामिंग), और विंडोज 3.1 एसडीके दोनों को बनाने की क्षमता शामिल है। Phar Lap (कंपनी) 286 DOS एक्सटेंडर लाइट भी शामिल थी।
 * विजुअल C++ 1.5 को दिसंबर 1993 में जारी किया गया था, जिसमें MFC 2.5 शामिल था, और MFC को जोडकर परनिगरानी और उद्देश् य 2.0 और डेटाबेस कनेक्टिविटी खोलें सपोर्ट जोड़ा गया था। यह 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-बिट विकास के लिए पहला संस्करण था। यद्यपि Intel 286|16-बिट संस्करण 1.5 उपलब्ध होने पर जारी किया गया था, इसमें OLE2 और ODBC के लिए समर्थन शामिल नहीं था। यह Visual C++ 16/32-बिट सुइट नामक बंडल में भी उपलब्ध था, जिसमें Visual C++ 1.5 शामिल था।
 * विज़ुअल 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 आरआईएससी संस्करण भी था।
 * विजुअल C++ 2.1 और 2.2 सब्सक्रिप्शन के माध्यम से उपलब्ध 2.0 के लिए अपडेट थे।
 * विजुअल C++ 4.0, 1995-12-11 को जारी किया गया, डेवलपर स्टूडियो आईडीई पेश किया। गैर-अतिव्यापी पैनलों-नेविगेशन पैनल, संयोजन संपादक/स्रोत स्तर डीबगर पैनल, और कंसोल आउटपुट पैनल का इसका तत्कालीन उपन्यास टाइल वाला लेआउट - 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 को छोड़ दिया गया था।
 * विज़ुअल C++ 4.2 ने Windows 3.x (Win32s) विकास का समर्थन नहीं किया। यह उपलब्ध मैक (कंप्यूटर) के लिए एक क्रॉस-प्लेटफ़ॉर्म संस्करण के साथ अंतिम संस्करण था और यह 2.x संस्करण से भिन्न था जिसमें यह PowerPC निर्देश सेट के लिए संकलन की भी अनुमति देता था।
 * विजुअल C++ 5.0, जिसमें MFC 4.21 शामिल था और 1997-04-28 को जारी किया गया था, 4.2 से एक प्रमुख उन्नयन था। चार संस्करणों में उपलब्ध: सीखना, पेशेवर, उद्यम, और आरआईएससी।
 * विजुअल C++ 6.0 (आमतौर पर VC6 के रूप में जाना जाता है), जिसमें MFC 6.0 शामिल था, 1998 में जारी किया गया था। रिलीज़ कुछ विवादास्पद थी क्योंकि इसमें MFC के लिए अपेक्षित अपडेट शामिल नहीं था। विज़ुअल C++ 6.0 अभी भी काफी लोकप्रिय है और अक्सर विरासत परियोजनाओं को बनाए रखने के लिए उपयोग किया जाता है। हालाँकि, Windows XP के तहत इस संस्करण के साथ समस्याएँ हैं, विशेष रूप से डिबगिंग मोड के तहत (उदाहरण के लिए, स्थिर चर के मान प्रदर्शित नहीं होते हैं)। डीबगिंग समस्याओं को Visual C++ 6.0 प्रोसेसर पैक नामक पैच से हल किया जा सकता है। संस्करण संख्या: 12.00.8804
 * विज़ुअल C++ .NET 2002 (विज़ुअल C++ 7.0 के रूप में भी जाना जाता है), जिसमें MFC 7.0 शामिल था, 2002 में लिंक टाइम कोड जनरेशन और डिबगिंग रनटाइम चेक, .NET 1.0, और विज़ुअल C Sharp|Visual C# और प्रबंधित एक्सटेंशन के लिए समर्थन के साथ जारी किया गया था। सी++|प्रबंधित सी++। नए उपयोगकर्ता इंटरफ़ेस ने मूल दृश्य की कई हॉट कुंजियों और परंपराओं का उपयोग किया, जो C++ डेवलपर्स के बीच इसकी कुछ अलोकप्रियता के लिए जिम्मेदार है। संस्करण संख्या: 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 का समर्थन करने वाला यह अंतिम संस्करण था। संस्करण संख्या: 13.10.3077
 * एम्बेडेड विज़ुअल C++ विभिन्न संस्करणों में विंडोज सीई ऑपरेटिंग सिस्टम के कुछ संस्करणों के विकास के लिए उपयोग किया गया था। प्रारंभ में इसने विज़ुअल 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 और विंडोज़ मी को लक्षित करने में सक्षम अंतिम संस्करण है। 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 और बाद के संस्करण पर काम करेंगे। VC9 के लिए रिलीज़ किया गया फीचर पैक, जिसे बाद में SP1 में शामिल किया गया, C++ सी ++ तकनीकी रिपोर्ट 1 लाइब्रेरी एक्सटेंशन के लिए समर्थन जोड़ा गया। SP1 संस्करण (15.00.30729.01) Microsoft Windows SDK में भी उपलब्ध है।
 * विज़ुअल सी++ के कुछ संस्करणों ने इटेनियम 2 का समर्थन किया।
 * Visual C++ 2010 (जिसे Visual C++ 10.0 के रूप में भी जाना जाता है) 12 अप्रैल, 2010 को जारी किया गया था। यह बेहतर IntelliSense और कोड-पूर्ण समर्थन के लिए IntelliSense जानकारी सहित स्रोत कोड के बारे में जानकारी संग्रहीत करने के लिए एसक्यूएल सर्वर कॉम्पैक्ट डेटाबेस का उपयोग करता है। हालाँकि, Visual C++ 2010 C++/CLI के लिए Intellisense का समर्थन नहीं करता है। यह संस्करण समानांतर पैटर्न लाइब्रेरी नामक एक सी ++ समानांतर कंप्यूटिंग लाइब्रेरी जोड़ता है, सी ++ 11 के लिए आंशिक समर्थन, एडिसन डिजाइन समूह फ्रंट एंड के आधार पर इंटेलिसेन्स में काफी सुधार हुआ है, और संकलक और उत्पन्न कोड दोनों के प्रदर्शन में सुधार। यह संस्करण .NET 4.0 पर बनाया गया है, लेकिन मशीन कोड के संकलन का समर्थन करता है। आंशिक C++11 समर्थन में मुख्य रूप से छह संकलक विशेषताएं शामिल हैं: लैम्ब्डा, प्रतिद्वंद्विता संदर्भ, ऑटो, decltype, static_assert, और nullptr। C++11 पुस्तकालय सुविधाओं का भी समर्थन करता है (उदाहरण के लिए, TR1 घटकों को std::tr1 नामस्थान से सीधे std नाम स्थान पर ले जाना)। वैराडिक टेम्पलेट पर भी विचार किया गया था, लेकिन कम प्राथमिकता होने के कारण कुछ भविष्य के संस्करण तक देरी हुई, जो इस तथ्य से उपजी है कि, अन्य महंगी-से-कार्यान्वयन सुविधाओं (लैम्ब्डा, रावल्यू संदर्भ) के विपरीत, वैरैडिक टेम्प्लेट केवल पुस्तकालय के एक अल्पसंख्यक को लाभान्वित करेंगे। अधिकांश संकलक अंत उपयोगकर्ताओं के बजाय लेखक। डिफ़ॉल्ट रूप से, Visual C++ 2010 रनटाइम के विरुद्ध संकलित सभी एप्लिकेशन केवल Windows XP SP2 और बाद के संस्करण पर काम करते हैं। RTM संस्करण (16.00.30319) Microsoft Windows SDK|Windows SDK for Windows 7 और .NET Framework 4 (WinSDK v7.1) में भी उपलब्ध है। SP1 संस्करण (16.00.40219) Visual Studio 2010 सर्विस पैक 1 के हिस्से के रूप में या Windows SDK 7.1 के लिए Microsoft Visual C++ 2010 सर्विस पैक 1 कंपाइलर अपडेट के माध्यम से उपलब्ध है।
 * विज़ुअल C++ 2012 (विज़ुअल C++ 11.0 के रूप में भी जाना जाता है) 15 अगस्त, 2012 को जारी किया गया था। इसमें उन्नत C++11 समर्थन और विंडोज रनटाइम विकास के लिए समर्थन शामिल है।
 * विजुअल C++ 2013 (जिसे विजुअल C++ 12.0 के रूप में भी जाना जाता है) 17 अक्टूबर, 2013 को जारी किया गया था। इसमें आगे C++11 और C99 समर्थन की सुविधा है, और एक प्रतिनिधि राज्य हस्तांतरण एसडीके पेश करता है।
 * विजुअल C++ 2015 (जिसे विजुअल C++ 14.0 के नाम से भी जाना जाता है) 20 जुलाई, 2015 को जारी किया गया था। इसमें बेहतर C++ 11/14/17 सपोर्ट है। माइक्रोसॉफ्ट से किसी भी घोषणा के बिना, विजुअल स्टूडियो 2015 अपडेट 2 ने संकलित बायनेरिज़ में टेलीमेट्री कॉल उत्पन्न करना शुरू कर दिया। कुछ उपयोगकर्ताओं द्वारा इस समस्या के बारे में Microsoft से संपर्क करने के बाद, Microsoft ने कहा कि वे भविष्य के Visual Studio 2015 अद्यतन 3 के साथ संकलन करते समय इन टेलीमेट्री कॉलों को हटा देंगे। विज़ुअल स्टूडियो 2015 अपडेट 3 में विज़ुअल सी ++ सीआरटी स्थिर पुस्तकालयों से विचाराधीन फ़ंक्शन को हटा दिया गया था।
 * विज़ुअल सी++ 2017 (विज़ुअल सी++ 14.1 के रूप में भी जाना जाता है) 7 मार्च, 2017 को जारी किया गया था।
 * विजुअल C++ 2019 (जिसे विजुअल C++ 14.20 के नाम से भी जाना जाता है) 2 अप्रैल, 2019 को जारी किया गया था।
 * विजुअल C++ 2022 (जिसे विजुअल C++ 14.30 के नाम से भी जाना जाता है) 8 नवंबर, 2021 को जारी किया गया था।

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

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

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

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

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

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

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

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

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

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

"Full C11 conformance is on our roadmap, and updating the preprocessor is just the first step in that process. The C11 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."

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

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

बाहरी संबंध

 * C++ Tools and Features in Visual Studio Editions
 * Microsoft C++ Build Tools
 * C9::GoingNative on Microsoft Channel 9
 * C9::GoingNative on Microsoft Channel 9