Microsoft Visual C++ (často označován jako MSVC nebo VC++) je v informatice název vývojového prostředí (IDE) od společnosti Microsoft pro programovací jazyky C, C++ a C++/CLI. MSVC je proprietární software; původně se jednalo o samostatný produkt, ale později se stal součástí Visual Studio a jsou k dispozici jako trialware a freeware. MSVC nabízí nástroje pro vývoj a ladění kódu v jazyce C++, a to zejména kód napsaný pro Windows API, DirectX a .NET Framework.
Mnoho aplikací vyžaduje instalaci volně distribuovatelných balíčků pro Visual C++, aby byly funkční. Tyto balíčky jsou často instalovány nezávisle na aplikacích, což umožňuje více aplikacím využít jeden balíček bez nutnosti opětovné instalace. Tyto volně distribuovatelné a runtime balíčky pro Visual C++ jsou většinou instalovány jako standardní knihovny, které pak aplikace využívají.
Historie Předchůdce jazyka Visual C++ byl nazýván Microsoft C/C++. Existoval také Microsoft QuickC 2.5 a Microsoft QuickC pro Windows 1.0. Překladač Visual C++ je ještě známý jako Microsoft C/C++ a od vydání 2. aktualizace Visual C++ 2015 je jeho aktuální verze 19.00.23918.
16bitové verze Microsoft C 1.0, založené na Lattice C, byl v roce 1983 prvním jazykem C od firmy Microsoft, ale nebyl kompatibilní s K&R C. C 2.0 přidána podpora velkého modelu. C 3.0 byla první verze vyvinutá uvnitř Microsoftu. Tato verze zajistila kompatibilitu s K&R C a později i s ANSI standardem. Byla používána v Microsoftu (pro vývoj systémů Windows a XENIX) na počátku roku 1984. Jako oficiální produkt byla vydána v roce 1985. C 4.0 přidána optimalizace a CodeView. C 5.0 přidána optimalizace smyček a podpora Huge modelu (pole větší než 64 KiB). Součástí projektu byl také Microsoft Fortran a první 32bitový kompilátor pro procesor Intel 80386. C 5.1 vydán v roce 1988, umožnil sestavování programů pro OS/2 1.x. C 6.0 vydán v roce 1989. Dodal globální analýzu toku, prohlížeč zdrojových kódů, nový debugger a volitelný C++ forntend. C++ 7.0 byla vydána v roce 1992. Přidána vestavěná podpora pro C++ a MFC (Microsoft Foundation Class Library) 1.0.Retrieved from http://support.microsoft.com/kb/196831. Visual C++ 1.0, která zahrnovala MFC 2.0, byla první verzí Visual C++, vydánou v únoru roku 1993. Byla Cfront 2.1 kompatibilní a je k dispozici ve dvou edicích:"Visual C++ adds Windows support". Standard – nahrazuje QuickC pro Windows. Professional – nahrazuje C/C++ 7.0 a má schopnost postavit DOS a Windows aplikace. Zahrnuje optimalizující kompilátor, profiler zdrojového kódu a Windows 3.1 SDK. Obsažen byl také Phar Lap 286 DOS Extender Lite. Visual C++ 1.5 byla vydána v prosinci rok 1993, včetně MFC 2.5, zahrnovala OLE 2.0 a ODBC podporu pro MFC. Byla to první verze Visual C++, která byla dostupná pouze na CD-ROM. Visual C++ 1.51 a 1.52 byly k dispozici pouze jako součást předplatné služby. Visual C++ 1.52 b je podobný 1.52, ale nezahrnoval Control Development Kit. Visual C++ 1.52 c je opravenou verzí 1.5. Byla to poslední a pravděpodobně nejvíce populární vývojová platforma pro Microsoft Windows 3.x. Je k dispozici prostřednictvím webu Microsoft Developer Network.
Pouze 32bitové verze Visual C++ 1.0 (původní název: Visual C++ 32-bit Edition) byla první verzí 32bitového vývoje. I přestože byla vydána, když byla k dispozici verze 16bit 1.5, tak nezahrnovala podporu pro OLE2 a ODBC. Byla také dostupná v balíčku Visual C++ 16/32-bit Suite, který zahrnoval Visual C++ 1.5. Visual C++ 2.0, zahrnující MFC 3.0, byla jedinou verzí, která byla pouze 32bitová. V mnoha směrech byla tato verze nadčasová. Když Windows 95, později pod krycím názvem "Chicago", ještě nebyl vydaný a Windows NT měl jen malý podíl na trhu. Výsledně to bylo skoro označeno jako "ztracená generace". Microsoft zahrnul a vylepšil Visual C++ 1.5 jako část 2.x vydání do 2.1, které zahrnuly Visual C++ 1.52, a zároveň 16bit a 32bit verze CDK byly přidány. Visual C++ 2.x také podporoval vývoj Win32s. Je dostupný na Microsoft Developer Network. Byla tu ještě edice Visual C++ 2.0 RISC pro MIPS a Alpha procesory, stejně tak jako pro multiplatformovou edici pro Macintosh (se sadou instrukcí 68000). Visual C++ 2.1 a 2.2 byly aktualizace pro 2.0, které byly dostupné z předplatného. Visual C++ 4.0, vydána 11.12.1995 představila vývojové prostředí IDE, které má kachlová rozložení s nepřekrývajícími se panely — navigační panel, kombinace editor/zdroj úrovně debugger panelu, a výstup na konzolovém panelu— pokračuje do Visual Studio produktových řad (od roku 2013). Visual C++ 4.0 zahrnuly MFC 4.0. Byly určeny pro Windows 95 a Windows NT. Povolili podporu starších (Windows 3.x/DOS) projektů. 4.0 byly dostupné s Visual C++ 1.52 instalačním CD. Aktualizace je k dispozici prostřednictvím předplatného, ve kterém je zahrnuta verze Visual C++ 4.1, která přišla s Microsoft Game SDK (později vydána samostatně jako DirectX SDK), a s Visual C++ 4.2. Verze 3.0 byla přeskočena, aby se dosáhlo číslo s paritou mezi Visual C++ 4.0 a MFC 4.0.. Visual C++ 4.2 nepodporovaly vývoj Windows 3.x (Win32s). Toto byla poslední verze s multiplatformovou edicí pro počítače Macintosh, která byla k dispozici. Liší se od 2.x verzí, ve kterých je také možnost kompilace pro procesory s instrukční sadou. PowerPC. Visual C++ 5.0 zahrnovala MFC 4.21 a byla vydána 28.04.1997. Byla o hodně více vylepšená na rozdíl od verze 4.2. Dostupná ve čtyřech edicích: Learning, Professional, Enterprise, a RISC. Visual C++ 6.0 (běžně známá jako VC6), zahrnovala MFC 6.0 a byla vydána v roce 1998. Vydání bylo poněkud kontroverzní, neboť neobsahovalo očekávanou aktualizaci na MFC. Visual C++ 6.0 je stále velmi populární a často používán k udržování zpětné kompatibility starších projektů. Existují však problémy s touto verzi u Windows XP, a to zejména pod režimem debugu (například u hodnot statické proměnné se nezobrazí). Debugging problémů může být řešené s "Visual C++ 6.0 Procesor Pack". This page stresses that Users must also be running Windows 98, Windows NT 4.0, or Windows 2000. Číslo verze: 12.00.8804 Visual C++ .NET 2002 (také známý jako Visual C++ 7.0), který zahrnoval MFC 7.0, byl vydán v roce 2002 s podporou pro LTCG a "debugging runtime control" .NET 1.0 a Visual C# a Managed C++. Nové uživatelské rozhraní používá mnoho klávesových zkratek a konvencí jazyka, které se projevily na negativní odezvě od C++ vývojářů. Číslo verze: 13.00.9466 Visual C++ .NET 2003 (také známý jako Visual C++ 7.1), který zahrnoval MFC 7.1, byl vydán v roce 2003 spolu s .NET 1.1 a byl hlavní upgrade ve Visual C++ .NET 2002. Proto byly anglické jazykové verze na upgrade z Visual Studio .NET 2003 dodány za minimální náklady pro majitele anglických verzí Visual Studia .NET 2002. Toto byla poslední verze, která prioritně podporovala Windows 95 a NT 4.0. Číslo verze: 13.10.3077 eMbedded Visual C++Douglas Boling :Programming Microsoft Windows CE . v různých verzích bylo použito k vytvoření pro některé verze operačního systému Windows CE. Zpočátku nahrazuje vývojové prostředí, které se skládalo z nástrojů přidaných do Visual C++ 6.0. eMbedded Visual C++ bylo nahrazeno jako samostatné vývojové prostředí Microsoft Visual Studio 2005.
32bitové a 64bitové verze Visual C++ 2005 (také známé jako Visual C++ 8.0), které zahrnovalo MFC 8.0, bylo vydáno v listopadu 2005. Tato verze podporuje .NET 2.0 a obsahuje nové verze C++ pro .NET framework (C++/CLI) , které mají cíl nahradit předchozí verzi (Managed C++). Managed C++ pro CLI je stále k dispozici prostřednictvím možnosti kompilátoru. Také tím bylo představeno OpenMP. S Visual C++ 2005, Microsoft také představil Team Foundation Server. Visual C++ 8.0 má problémy se sestavováním MFC AppWizard projektů, které byly vytvořeny s Visual Studiem 6.0, tudíž údržba stávajících projektů může být i nadále s původní IDE, pokud není povolené přepisování. Visual C++ 2005 je poslední verze, která je zaměřená na Windows 98 a Windows Me.How to: Modify WINVER and _WIN32_WINNTBreaking Changes SP1 verze (14.00.50727.762) je dostupná na Microsoft Windows SDK Update for Windows Vista. Visual C++ 2008 (také známé jako Visual C++ 9.0) bylo vydáno listopadu 2007. Tato verze podporuje .NET 3.5. Managed C++ pro CLI a je stále k dispozici prostřednictvím možnosti kompilátoru. Z výchozího nastavení všechny aplikace zkompilované proti Visual C++ 2008 Runtime (statické a dynamické linkování) budou fungovat pouze pod Windows 2000 a novější.Windows Platforms (CRT) Balíček funkcí vydán pro VC9, který byl později zahrnut v SP1 umožnil podporu pro rozšíření knihovny C++ TR1. Verze SP1 (15.00.30729.01) je také dostupná na Microsoft Windows SDK for Windows 7. Visual C++ 2010 (také známé jako Visual C++ 10.0) bylo vydáno 12. dubna 2010. Používá databázi SQL Server Compact k uchování informaci o zdrojovém kódu, obsahujíc informace IntelliSense pro jehož vylepšení a podporu dokončování kódu. Na druhou stranu Visual C++ 2010 nepodporuje IntelliSense pro C++/CLI. Tato verze přidává C++ paralelní knihovnu zvanou Parallel Patterns Library. Tato verze je postaveena na.NET 4.0, avšak podporuje kompilaci do strojového kódu. Částečná podpora pro C++11 se převážně skládá z šesti funkcí kompilátoru: lambdy, rvalue reference, auto, decltype, static_assert, a nullptr. C++11 také podporuje funkce knihovny (např. přemístění součástí TR1 z std::tr1 namespace přímo do std namespace). O variadických šablonách se také uvažovalo, že by se zahrnuly, ale tento nápad byl odložen do jiné budoucí verze , protože měly malou prioritu, což pramenilo z toho faktu, že – na rozdíl od jiných "costly-to-implement" funkcí (lambda, rvalue reference) – variadické šablony by prospěly víc menšině tvůrců knihoven, než většině kompilujících koncových uživatelů. Ze základu byly všechny aplikace zkompilovaná proti Visual C++ 2010 Runtimes pracují pouze na Windows XP SP2 a na pozdějších jiných verzích. RTM verze (16.00.30319) je také dostupná ve Windows SDK pro Windows 7 a .NET Framework 4 (WinSDK v7.1). Verze SP1 (16.00.40219) je dostupná jako součást Visual Studio 2010 SP1 nebo skrze Microsoft Visual C++ 2010 SP1 Compiler aktualizace pro Windows SDK 7.1.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 Visual C++ 2012 (také známé jako Visual C++ 11.0) bylo vydáno 15. srpna 2012. Obsahuje vylepšenou podporu pro C++11 a vývojové prostředí Windows Runtime. Visual C++ 2013 (také známé jako Visual C++ 12.0) bylo vydáno 17. října 2013. Obsahuje další podporu pro C++11, C99 a přináší REST SDK. Visual C++ 2015 (také známé jako Visual C++ 14.0) bylo vydáno 20. června 2015. Obsahuje znovu vylepšenou podporu pro C++11/14/17.
Kompatibilita
ABI Kompilátor Visual C++ ABI se průběžně historicky změnil mezi vydáváním velkých množství kompilátorových aktualizací.Microsoft MSDN: Breaking Changes in Visual C++ To je zejména případ obsahu STL, kde se velikosti obsahu velice měnily mezi verzemi kompilátorů.Microsoft MSDN: Containers (Modern C++) Microsoft proto doporučuje používání C++ rozhraní v hraničních modulech, když jeden chce, aby klientský kód zkompilovaný pomocí různých kompilátorových verzí. Namísto C++, Microsoft doporučuje používat rozhraní CMicrosoft MSDN: Portability At ABI Boundaries (Modern C++) nebo COMMicrosoft forum: Binary compatibility across Visual C++ versions, které jsou navrženy tak, aby měli stabilní ABI mezi verzemi kompilátoru.
C runtime knihovny