- Visual C++
-
For Visual C#, see Microsoft Visual C Sharp.
Visual C++ Developer(s) Microsoft Corporation Stable release Visual Studio 2010 / April 2010 Development status Active Operating system Microsoft Windows Platform x86, x86-64 and Itanium Available in English, French, Japanese, Korean, German, and likely others Type IDE License MS-EULA Website Visual C++ Developer Center Microsoft Visual C++ (often abbreviated as MSVC or VC++) is a commercial (free version available), integrated development environment (IDE) product from Microsoft for the C, C++, and C++/CLI programming languages. It has tools for developing and debugging C++ code, especially code written for the Microsoft Windows API, the DirectX API, and the Microsoft .NET Framework.
Contents
History [1]
The predecessor to Visual C++ was called Microsoft C/C++. There was also a Microsoft QuickC 2.5 and a Microsoft QuickC for Windows 1.0.
16-bit versions
- Microsoft C 1.0, based on Lattice C, was Microsoft's first C product in 1983. It was not K&R C.
- C 2.0 added large model support.
- C 3.0 was the first version developed inside Microsoft. It was extremely compatible with K&R and the later ANSI standard. It was being used inside Microsoft (for Windows and Xenix development) in early 1984. It shipped as a product in 1985.
- C 4.0 added optimizations and CodeView, a source level debugger.
- C 5.0 added loop optimizations and Huge Model (arrays bigger than 64k) support. Microsoft Fortran and the first 32 bit compiler for 80386 were also part of this project.
- C 6.0 released in 1989. It added global flow analysis, a source browser, and a new debugger, and included an optional C++ front end.
- C/C++ 7.0 was released in 1992. It added built-in support for C++ and MFC 1.0.[2]
- Visual C++ 1.0, which included MFC 2.0, was the first version of Visual C++, released in February 1993. It was Cfront 2.1 compliant[3] and available in two editions:[4]
- Visual C++ 1.5 was released in December 1993, included MFC 2.5, and added OLE 2.0 and ODBC support to MFC.[6] It was the first version of Visual C++ that came only on CD-ROM.
- Visual C++ 1.51 and 1.52 were available as part of a subscription service.
- Visual C++ 1.52b is similar to 1.52, but does not include the Control Development Kit.
- Visual C++ 1.52c was a patched version of 1.5. It is the last, and arguably most popular, development platform for Microsoft Windows 3.x. It is available through Microsoft Developer Network.
32-bit versions
- Visual C++ 1.0 (original name: Visual C++ 32-bit Edition) was the first version for 32-bit development.[7] Although released when 16-bit 1.5 was available, it did not include support for OLE2 and ODBC. It was also available in a bundle called Visual C++ 16/32-bit Suite, which included Visual C++ 1.5.[8]
- Visual C++ 2.0, which included MFC 3.0, was the first version to be 32-bit only. In many ways, this version was ahead of its time, since Windows 95, then codenamed "Chicago", was not yet released, and Windows NT had only a small market share. As a result, this release was almost a "lost generation". Microsoft included and updated Visual C++ 1.5 as part of the 2.x releases up to 2.1, which included Visual C++ 1.52, and both 16-bit and 32-bit version of the Control Development Kit (CDK) were included. Visual C++ 2.x also supported Win32s development. It is available through Microsoft Developer Network. There was a Visual C++ 2.0 RISC Edition for MIPS and Alpha processors, as well as a cross-platform edition for the Macintosh (68000 instruction set).
- Visual C++ 2.1 and 2.2 were updates for 2.0 available through subscription.
- Visual C++ 4.0, which included MFC 4.0, was designed for Windows 95 and Windows NT. To allow support of legacy (Windows 3.x/DOS) projects, 4.0 came bundled with the Visual C++ 1.52 installation CD. Updates available through subscription included Visual C++ 4.1, which came with the Microsoft Game SDK (later released separately as the DirectX SDK), and Visual C++ 4.2. Version number 3.0 was skipped to achieve version number parity between Visual C++ 4.0 and MFC 4.0.[9]
- Visual C++ 4.2 did not support Windows 3.x (Win32s) development.[10] This was the final version with a cross-platform edition for the Macintosh available and it differed from the 2.x version in that it also allowed compilation for the PowerPC instruction set.
- Visual C++ 5.0, which included MFC 4.21, was a major upgrade from 4.2.[11] Available in four editions:
- Visual C++ 6.0 (commonly known as VC6), which included MFC 6.0, was released in 1998.[16] The release was somewhat controversial since it did not include an expected update to MFC. Visual C++ 6.0 is still quite popular and often used to maintain legacy projects. There are, however, issues with this version under Windows XP, especially under the debugging mode (for example, the values of static variables do not display). The debugging issues can be solved with a patch called the "Visual C++ 6.0 Processor Pack".[17]
- Visual C++ .NET 2002 (known also as Visual C++ 7.0), which included MFC 7.0, was released in 2002 with support for link time code generation and debugging runtime checks, .NET 1.0, and Visual C# and Managed C++. The new user interface used many of the hot keys and conventions of Visual Basic, which accounted for some of its unpopularity among C++ developers.[citation needed]
- Visual C++ .NET 2003 (known also as Visual C++ 7.1), which included MFC 7.1, was released in 2003 along with.NET 1.1 and was a major upgrade to Visual C++ .NET 2002. It was considered a patch to Visual C++ .NET 2002. Accordingly, the English language upgrade version of Visual Studio .NET 2003 shipped for minimal cost to owners of the English language version of Visual Studio .NET 2002. This was the last version to support Windows 95 and NT 4.0 as a target.[citation needed]
- eMbedded Visual C++ in various versions was used to develop for some versions of the Windows CE operating system. Initially it replaced a development environment consisting of tools added onto Visual C++ 6.0. eMbedded Visual C++ was replaced as a separate development environment by Microsoft Visual Studio 2005.
- Visual C++ 2005 (known also as Visual C++ 8.0), which included MFC 8.0, was released in November 2005. This version supports .NET 2.0 and dropped Managed C++ for C++/CLI. Managed C++ for CLI is still available via compiler options though. It also introduced OpenMP. With Visual C++ 2005, Microsoft also introduced Team Foundation Server. Visual C++ 8.0 has problems compiling MFC AppWizard projects that were created using Visual Studio 6.0, so maintenance of legacy projects can be continued with the original IDE if rewriting was not feasible. Visual C++ 2005 is the last version to be able to target Windows 98 and Windows Me. [18] [19]
- SP1 version also available in Microsoft Windows SDK Update for Windows Vista. Version number: 14.00.50727.762
- Visual C++ 2008 (known also as Visual C++ 9.0) was released in November 2007. This version supports .NET 3.5. Managed C++ for CLI is still available via compiler options. By default, all applications compiled against the Visual C++ 2008 Runtimes (static and dynamic linking) will only work under Windows 2000 and later. [20] [21] A feature pack released for VC9, later included into SP1, added support for C++ TR1 library extensions.
- SP1 version also available in Microsoft Windows SDK for Windows 7. Version number: 15.00.30729.01
- Visual C++ 2010 (known also as Visual C++ 10.0) was released on April 12, 2010, and it is currently the latest stable release. It uses a SQL Server Compact database to store information about the source code, including IntelliSense information, for better IntelliSense and code-completion support.[22] (However, Visual C++ 2010 does not support Intellisense for C++/CLI.[23]) This version adds a modern C++ parallel computing library called the Parallel Patterns Library, partial support for C++0x, significantly improved IntelliSense, and performance improvements to both the compiler and generated code.[24] This version is built around .NET 4.0, but supports compiling to machine code. The partial C++0x support mainly consists of six compiler features[25] (lambdas, rvalue references, auto, decltype, static_assert, nullptr), and some library features (e.g. moving the TR1 components from std::tr1 namespace directly to std namespace). Variadic templates were also considered, but delayed until some future version due to lower priority which stemmed from the fact that unlike other costly-to-implement features (lambda, rvalue references), this one would benefit only a minority of library writers than the majority of compiler end users.[26] By default, all applications compiled against the Visual C++ 2010 Runtimes will only work under Windows XP SP2 and later.
- Beta 2 version number: 16.00.21003.01 (this is the version of compiler; the IDE itself has version number 16.00.21006.01)[27]
- RC version number: 16.00.30128.01
- RTM version, also available in Windows SDK for Windows 7 and .NET Framework 4 (WinSdk v7.1).[28] Version number: 16.00.30319.01
- SP1 version, also available in KB2519277 update to Windows SDK v7.1: 16.00.40219.01
64-bit versions
Visual Studio 2005 Standard and Professional editions have x86-64 compiler support, and Visual Studio 2008 Team Suite supports both x86-64 and IA-64. Prior to Visual C++ 2005, the Platform SDK was the only way for programmers to develop 64-bit Windows applications. The SDK included both a compiler and a Visual C++ 6.0 library for the IA64-target. Programmers who wanted the 64-bit versions of the Visual C++ .NET 2003 libraries (which are no longer available) had to contact libs7164microsoft.com.
Current editions
There are six current versions of Visual C++ available:
- Legacy Microsoft Visual C++ 2008 Express Edition
- Microsoft Visual C++ 2010 Express Edition (available as a free download at the MSDN site)[29]
- Microsoft Visual Studio 2010 Professional
- Microsoft Visual Studio 2010 Team Foundation
- Microsoft Visual Studio 2010 Premium
- Microsoft Visual Studio 2010 Ultimate
Visual C++ is included in Visual Studio.
Issues
Visual C++ ships with different versions of C Runtime libraries.[30] This means the user can compile their code with any of the available libraries. However this can cause some problems when using different components(DLLs, EXEs) in the same program. A typical example is a program using different libraries. The user should use the same C Run-Time for all the program's components unless the implications are understood. Microsoft recommends using the multithreaded, dynamic link library (/MD or /MDd compiler option) to avoid possible problems.[30]
The compiler does not support C99, the current standard for the C programming language.[31]
References
- ^ "Description and comparison of Visual C++ products". http://support.microsoft.com/kb/145669.
- ^ Retrieved from http://support.microsoft.com/kb/196831.
- ^ a b "Visual C++ is a strong development tool". InfoWorld: p. 94. June 21, 1993. http://books.google.pl/books?id=OjsEAAAAMBAJ.
- ^ "Visual C++ adds Windows support". InfoWorld: p. 17. February 22, 1993. http://books.google.pl/books?id=vjsEAAAAMBAJ.
- ^ "Rival DOS Extenders debut at show". InfoWorld: p. 18. March 1, 1993. http://books.google.pl/books?id=fzwEAAAAMBAJ.
- ^ "Visual C++ 1.5 integrates OLE, ODBC". InfoWorld: p. 5. November 8, 1993. http://books.google.pl/books?id=8ToEAAAAMBAJ.
- ^ "Microsoft set to prerelease 32-bit Visual C++". InfoWorld: p. 12. July 19, 1993. http://books.google.pl/books?id=mTsEAAAAMBAJ.
- ^ "C++ IDEs evolve". InfoWorld: p. 79. April 4, 1994. http://books.google.pl/books?id=FTsEAAAAMBAJ.
- ^ "History of Visual Studio (Part 3)". http://blogs.msdn.com/ricom/archive/2009/10/07/my-history-of-visual-studio-part-3.aspx.
- ^ "Major Changes from Visual C++ 4.0 to 4.2". http://msdn.microsoft.com/en-us/library/aa697418(VS.71).aspx.
- ^ "Major Changes from Visual C++ 4.2 to 5.0". http://msdn.microsoft.com/en-us/library/aa697419(VS.71).aspx.
- ^ "Microsoft Visual C++ 5.0 Learning Edition". Archived from the original on April 27, 1999. http://web.archive.org/web/19990427114135/http://www.microsoft.com/products/prodref/199_ov.htm.
- ^ "Microsoft Visual C++ 5.0 Professional Edition". Archived from the original on April 27, 1999. http://web.archive.org/web/19990427101205/http://www.microsoft.com/products/prodref/197_ov.htm.
- ^ "Microsoft Visual C++ 5.0 Enterprise Edition". Archived from the original on April 17, 1999. http://web.archive.org/web/19990417134138/http://www.microsoft.com/products/prodref/198_ov.htm.
- ^ "Microsoft Visual C++ 5.0 RISC Edition". Archived from the original on April 29, 1999. http://web.archive.org/web/19990429121236/http://www.microsoft.com/products/prodref/501_ov.htm.
- ^ "Major Changes from Visual C++ 5.0 to 6.0". http://msdn.microsoft.com/en-us/library/aa729389(VS.71).aspx.
- ^ 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.
- ^ How to: Modify WINVER and _WIN32_WINNT
- ^ Breaking Changes
- ^ Windows Platforms (CRT)
- ^ "Visual C++ 2008 Breaking Changes". http://msdn.microsoft.com/en-us/library/bb531344.aspx?ppud=4.
- ^ Visual C++ Team Blog. "IntelliSense, part 2: The Future". http://blogs.msdn.com/vcblog/archive/2008/02/29/intellisense-part-2-the-future.aspx. Retrieved March 12, 2008.
- ^ "Why IntelliSense is not supported for C++/CLI in Visual Studio 2010". http://blogs.msdn.com/b/vcblog/archive/2011/03/03/10136696.aspx. Retrieved March 13, 2011.
- ^ Visual C++ Team Blog. "Visual C++ Code Generation in Visual Studio 2010". http://blogs.msdn.com/vcblog/archive/2009/11/02/visual-c-code-generation-in-visual-studio-2010.aspx.
- ^ "C++0x Core Language Features In VC10: The Table". http://blogs.msdn.com/vcblog/archive/2010/04/06/c-0x-core-language-features-in-vc10-the-table.aspx.
- ^ "Stephan T. Lavavej: Everything you ever wanted to know about nullptr". http://channel9.msdn.com/shows/Going+Deep/Stephan-T-Lavavej-Everything-you-ever-wanted-to-know-about-nullptr/.
- ^ Visual C++ Team Blog. "MSDN Forums: Compiler version number for Beta 2?". http://social.msdn.microsoft.com/Forums/en-US/vcpluslanguage/thread/690619c3-bfb8-445c-b3da-08c4ad035380.
- ^ Microsoft Windows SDK Blog. "Released: Windows SDK for Windows 7 and .NET Framework 4". http://blogs.msdn.com/b/windowssdk/archive/2010/05/25/released-windows-sdk-for-windows-7-and-net-framework-4.aspx.
- ^ Microsoft Visual C++ 2010 Express free download from Microsoft
- ^ a b C Run-Time Libraries
- ^ http://connect.microsoft.com/VisualStudio/feedback/details/485416/support-c99
External links
- Microsoft's Visual C++ Developer Center
- Microsoft's Visual C++ Developer Center Community
- Building Win32 Applications Using Visual C++ 2005 Express
- Visual C++ Templates Tutorial
- Microsoft Visual C++ 2010 SP1 Redistributable for running applications on systems without Visual C++ (x86)
- Microsoft Visual C++ 2010 SP1 Redistributable for running applications on systems without Visual C++ (x64)
- Comparison of Visual C++ Editions
- Microsoft's 'Going Native' Channel Nine show
Microsoft development tools Development
environmentsOthersLanguages and
compilersVisual Basic · Visual Basic .NET · Visual C++ · Visual C# · Visual J# · Visual FoxPro · IronPython · IronRuby · PowerShell · XAML · F#Major APIs and
frameworksWindows API / SDK · .NET Framework · Managed code frameworks (Presentation · Communication · Workflow · CardSpace) · Silverlight · XNA · ASP.NET (ASP.NET AJAX) · LINQ · ADO.NET · DirectX (Managed DirectX) · Xbox Development KitDatabase tools
and languagesSQL servicesOtherSource control Deployment Driver development Performance Analysis Categories:- Integrated development environments
- C compilers
- C++ compilers
- Microsoft Visual Studio
- Microsoft development tools
Wikimedia Foundation. 2010.