|
*LEGAL DISCLAIMER: All references to Microsoft products, including but not
limited to: Microsoft Macro Assembler (MASM), MS-DOS, Visual C++, Visual Basic,
Visual Studio, Windows, Windows NT, Windows Software Development Kit (SDK) and
associated logos or images are trademarks owned and copyright by Microsoft
Corporation.
If you notice any incorrect version information here or you have information to
add, please use the Contact Form!
The official change information for the various Microsoft Visual C++ versions are typically strewn across
numerous sources. This site was designed to compile a list of everything that has changed for each version in one convenient
location. Official Visual C++ information prior to 7.0 (.NET) is no longer online (or is sparse and unsupported as
these are highly obsolete versions). For versions including and after 7.0, Microsoft's MSDN URLs are not
very reliable as they seem to be ever-changing. Their link structure seem to change too often as well, so
the relevant information must be copied and maintained independent of Microsoft. The purpose of this
website is to preserve history.
The source media for the changelist information may have been floppy-disk, CD-ROM or online and comprise of
help files, readmes/documents, and website URLs.
Besides any commentary, the information contained in the changelists are verbatim (copy-and-paste) from
official Microsoft sources, but with the formatting changed and some reorganization applied. Sometimes, a
lot of reorganization has been applied to maintain consistency between the different changelists.
These changelists show the unified compiler (cl.exe), language and standard library changes, but do not
attempt to be exhaustive for extra technologies such as ATL, MFC, etc., especially in the later versions.
NOTE: This page is a work-in-progress and currently
a hodge-podge of various bits of information with little consistency between various versions.
Eventually the information displayed for each version will be consistent.
|
|
Released in February 1993, Visual C++ 1.0 for Windows was born. This edition was designed for the
16-bit Windows 3.1 operating system. It was available in Standard and Professional editions.
Microsoft considered Visual C++ as an upgrade
from "Microsoft C/C++ Version 7.0", Microsoft's previous C/C++ product.
Prior to this release, Microsoft's IDE offering used for various programming products was named "Programmer's Workbench".
For Visual C++ 1.0, they improved the IDE and renamed it "Visual Workbench".
Surprisingly this IDE actually supported syntax coloring too!
Visual C++ 1.0 Professional (16-bit) shipped with version 8.0 of the Microsoft C/C++ Optimizing
Compiler (CL.EXE) / size=96,800 bytes (95k) / file date 2/8/1993 1:01am.
Visual Workbench (MSVC.EXE) was 772,208 bytes (754k).
CL.EXE was an early NT 32-bit application (PE format), but was only capable of producing 16-bit
targets (see below).
MSVC.EXE was a Windows 16-bit application (NE format).
CL.EXE supported command-line help via /? and when run without arguments, displayed:
Microsoft (R) C/C++ Optimizing Compiler Version 8.00
Copyright (c) Microsoft Corp 1984-1993. All rights reserved.
usage: cl [ option... ] filename... [ -link linkoption... ]
Visual C++ 1.0 gave the choice of 10 project types for applications (all 16-bit targets):
- Windows application (.EXE)
- Windows dynamic-link library (.DLL)
- Visual Basic Custom Control (.VBX)
- QuickWin application (.EXE)
- Static library (.LIB)
- Windows P-code application (.EXE)
- MS-DOS application (.EXE)
- MS-DOS P-code application (.EXE)
- MS-DOS Overlaid application (.EXE)
- MS-DOS COM application (.COM)
Some of the changelist information below was derived from the
README.WRI and
TOOLS.WRI.
Additional changelist information came from the Books Online documentation from the 32-bit edition
and other documentation present in version 1.52c.
|
|
|
|
|
Also known as "Visual C++ 32-bit Edition", the official release date for this version was August 24,
1993, with a suggested retail price of $599. This came 6 months after the 16-bit release of Visual
C++ 1.0 and 4 months before the 16-bit release of version 1.5.
Its obvious Microsoft was moving away from 16-bit as even the 16-bit versions began with the new
32-bit tools, despite not yet supporting 32-bit targets. That is without being Win32s hybrid
applications.
Besides the
bugfix releases of the 16-bit versions up to 1.52c, this 32-bit version
would be the new standard for which all future versions of Visual C++ would be based.
Microsoft's introduction blurb from their "Books Online" help system was:
Microsoft® Visual C++™ Development System version 1.0 for Windows&trade and Windows NT™, 32-bit
Edition is the latest generation of C++ products from Microsoft that significantly shortens the path to writing
C++ applications for the Microsoft Windows operating system. Visual C++ 32-bit Edition does this by offering an
integrated, task-oriented and 100-percent Windows NT operating system-hosted graphical environment that provides
significant productivity benefits and ease of use with complete access to the power of C++.
Visual C++ 32-bit Edition is designed for experienced C++ programmers who want to create powerful 32-bit
applications for either Windows 3.1 using the Win32s API, or Windows NT using the Win32 API. It is the best
choice for programmers who want their applications to run on the next generation of 32-bit operating systems. It
includes complete software, documentation and extensive sample code on CD-ROM. Printed documentation may also be
purchased additionally.
Visual C++ (32-bit edition) was born from a revamp of Microsoft's existing C/C++ compiler from 16 to 32-bits
specially designed to target the Win32 API for Windows NT. Win32s (Microsoft's framework for
emulating a 32-bit application under 16-bit Windows) was also supported by the early 32-bit Visual C++
products starting with this version.
System Requirements:
- An IBM™ Personal Computer, or 100 percent compatible running Microsoft Windows NT 3.1.
- An Intel® 80386 or higher processor
- 16MB of available RAM (20MB recommended)
- One CD-ROM drive supported by Windows NT
- A VGA (or higher resolution) adapter and monitor
- A mouse or other pointing device supported by Windows NT
- A hard disk with enough disk space to install the options needed. 6MB of available storage space is the
minimum requirement to run your installation from the CD-ROM. To install the full configuration of the 32-bit
Edition, 80MB of free disk space is required.
To run Win32s targets, you need a dual-boot computer or a separate computer with:
- Microsoft Windows or Microsoft Windows for Workgroups version 3.1 running in enhanced mode (command-line
utilities can be run outside Windows but you need Windows to install Win32s files).
- MS-DOS® version 3.3 or greater
Microsoft distributed the help and documentation content on CD-ROM using a framework called
"Books Online".
Visual C++ 1.0 shipped with version 8.0 of the "32-bit" Microsoft C/C++ Optimizing compiler (CL.EXE) / size=87,552 bytes (86k) / file date 7/19/1993
11:33pm. Visual Workbench (MSVC.EXE) was a rather large application for 1993, measuring in at
922,112 bytes (901k).
Both CL.EXE and MSVC.EXE were 32-bit applications (in the native NT PE image format). The CL.EXE
command line displayed as:
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 8.00
Copyright (c) Microsoft Corp 1984-1993. All rights reserved.
usage: cl [ option... ] filename... [ -link linkoption... ]
Visual C++ 1.0 gave the choice of four project types for an NT-target:
- Windows application (.EXE)
- Windows dynamic-link library (.DLL)
- Console application (.EXE)
- Static library (.LIB)
|
|
|
|
|
Visual C++ 1.5 Professional - 16-bit
Version 1.5 of the development system added support for NT, MFC 2.5, OLE 2.0 and ODBC.
This version appeared to only be available as the Professional edition. The RTM
date was Dec 1, 1993. Version 1.5 now worked under NT for both 16 and 32-bit development although the
environment was still a 16-bit product like the 16-bit version 1.0. The Professional upgrade price
was $99.00.
The qualifying products for this upgrade were:
Access, Delta, MASM, QuickPascal, Visual C++, COBOL, FORTRAN,
QuickBasic, Test, Visual Tools Suite, C/C++, FoxPro, QuickC, or Visual Basic.
The official Microsoft Visual C++ 1.5 Announcement Presentation from Dec 1993 is available on
YouTube. This presentation
mentioned the following changes:
-
NT support for 16 and 32-bit Development:
The IDE now runs under NT and can produce binaries that will run under NT.
[bytepointer.com edit] I think 32-bit development meant via the Win32s SDK, which when linked,
produced hybrid binaries that ran under 16-bit Windows 3.1 as well as NT (which only supported Win32
applications at the time). I don't think the 16-bit versions of Visual C++ were ever
capable of producing pure Win32 binaries.
-
MFC 2.5 Enchancements:
- Implementation of OLE2 interfaces
- 20,000 lines of C++ for OLE2 added
- Leverages existing MFC 2.0 code
- New Wizards for OLE and ODBC apps
- added ODBC database classes
-
Integrated OLE 2.0 Support:
- Visual Editing
- Drag and Drop
- OLE Automation Support
- Structured Storage
- Component Object Model (COM) Support
-
Integrated ODBC Support:
- Includes ODBC Engine & Drivers
- Includes Microsoft Query
|
|
|
|
Visual C++ 1.51 - 16-bit
This version was bundled with the 32-bit Visual C++ 2.0. The Master Setup Help listed the following
information about this version:
Microsoft Visual C++ version 1.51 is an upgrade of Microsoft Visual C++ version 1.5. This 16-bit
development system uses the new Microsoft Foundation Library version 2.51. This version of the
industry standard Microsoft Foundation Classes supports the OLE Custom Control Development Kit
(CDK) to simplify developing OLE custom controls. It also runs on Windows NT 3.5.
This version came with a README.WRI, which
wasn't much different than the 1.0 version.
Visual C++ 1.51 (16-bit) shipped with version 8.00c of the Microsoft C/C++ Optimizing
Compiler (CL.EXE) / size=91,648 bytes (90k) / file date 9/16/1994 2:00pm.
Visual Workbench (MSVC.EXE) was 775,760 bytes (758k).
CL.EXE was a 32-bit PE applicaion, but MSVC.EXE remained a 16-bit NE application.
CL.EXE supported command-line help via /? and when run without arguments, displayed:
Microsoft (R) C/C++ Optimizing Compiler Version 8.00c
Copyright (c) Microsoft Corp 1984-1993. All rights reserved.
usage: cl [ option... ] filename... [ -link linkoption... ]
|
|
|
|
|
Visual C++ 1.52x (16-bit)
The version 1.52x series of Visual C++ includes 1.52, a rumored 1.52b followed by 1.52c.
Version 1.52c was the last and final release of
Visual C++ which could produce 16-bit applications.
Future versions of Visual C++ (2.0 and up) would be based on the
32-bit compiler and 32-bit IDE for Windows NT, capable of producing only Win32 applications.
Visual C++ 4.x bundled this 16-bit version.
This version came with a README.WRI, which
wasn't much different than the 1.51 version.
Visual C++ 1.52c (16-bit) shipped with version 8.00c of the Microsoft C/C++ Optimizing
Compiler (CL.EXE), same as version 1.51 but with a slightly differing file date of 9/16/1994 7:00am.
Visual Workbench (MSVC.EXE) was the same size as version 1.51 but it was not identical. The file date on
MSVC.EXE was 1/13/1995 7:10am.
|
|
|
Visual C++ 2.0 (COMING SOON)
|
|
|
Visual C++ 4.2 (COMING SOON)
|
|
|
The debut of Visual Studio (Visual Studio 97) was marked with the release of Visual C++ 5.0.
It included all of Microsoft's programming tools in one package.
|
|
|
Version 6.0, while retaining the IDE of 5.0, was one of the most fast, stable, and industry
standard versions of Visual C++ Microsoft ever produced. This was the last version of
Visual Studio before the .NET era. One of the reasons for its stability was due to the
amount of bug-fixing Microsoft employed for this version. It had 6 service packs and was the
first version to include MASM (version 6.15) for free with the "Processor Pack" aimed at
service pack 5. Since then, Microsoft only seems to release about 1 service pack per major
version and this isn't enough to fix all the bugs; that is before they introduce new bugs
from all the new features with the next major release. One of the few problems I remember
with this version were bugs associated with C++ templates.
|
|
|
The previous version of Visual C++ 6.0 was fast, clean and polished. This version replaced
the old UI with a fancier one (which took some getting used to) and added a ton of new
features such as .NET paradigm (Managed C++), a tab-style interface, better IntelliSense,
compiler features galore, etc. This was essentially a new product with little resemblance to 6.0,
completely rewritten from the ground up. With such a drastic rewrite, it made sense that this
product was full of bugs. To fully realize the potential of this version, upgrading to 7.1 was a MUST.
PROS |
A massive injection of not only IDE features, but fundamental C/C++ language features so essential
you would use this version over 6.0, even if you weren't keen on the new IDE.
Many bugs with C++ template handling were fixed, so that you could actually use templates
without so many hacks.
The new tab-style interface greatly improved switching between different file windows; prior to this
was the Windows-standard MDI interface, now a relic of the old Program Manager style of
Windows 3.1: a bunch of small windows or one maximized window.
The tab interface by comparison made all windows fill the client area (maximized)
while providing the window names
(to be clicked on) in one conventient area, not unlike the Task Bar.
Improved IntelliSense; hovering the mouse over identifiers bring up mouse tips!
The enhanced syntax coloring support was a welcome
feature, providing an even finer level of control over code coloring.
A HELP button was added to the options pages!
|
CONS |
This version was a bit slow and bloated compared to version 6.0. The IDE was no longer lightweight.
I, like many others didn't appreciate having to install the .NET framework just to use the
IDE nomatter what language was being used.
When you switched between files,
the IDE would unroll and re-do your solution tree-view selections (expanded/collapsed nodes)
display so that it reflected the active file. This must have sounded great on paper, but
because it didn't remember the parts of your tree-view that were unaffected by the active
file change, it was extremely annoying. Luckily an option to turn this off was added in
version 7.1: “Track Active Item in Solution Explorer”.
Some useless features were introduced that were on by default such as the Task List, but at least you could turn them off.
Many bugs existed causing the IDE to crash during editing and debugging, so it wasn't
uncommon to lose valuable work. Some of the most serious of those were IntelliSense bugs,
resulting in a crash simply from using no features other than typing.
This product should be considered BETA, due to all the bugs.
|
|
|
|
|
|
This version certainly had drawbacks but it was one of the best IDE's Microsoft ever made.
The last service pack for this version was SP1, and it should be installed to address the remaining bugs
left over from 7.0.
While it took time to get used to the 7.0 series IDE changes, it was solid enough that
it didn't work against you allowing you to get real work done. I feel like the later versions of
Visual Studio certainly had some great improvements, but the overall usability suffered to the
point where you'd rather go back to something simpler (such as this version)
than stick with an IDE trying to “be too smart” for its own good, constantly getting in the way.
PROS |
All the benefits of 7.0, with the majority of those newly introduced bugs fixed.
The IDE was finally stable and had enough welcoming features to justify its added complexity
(because it was slower than 6.0)
so you could get work done and almost never
lose your work due to a random crash.
|
CONS |
The worst thing that was fixed in later versions of the product was this Context
Sensitive help (or Dynamic Help) feature. It would try to be helpful by constantly
updating its window each time the cursor's position changed or with every keystroke typed,
and none of what it displayed was
“helpful”. It might have been useful if the cursor was
positioned in an API name and the MSDN documentation for that API was automatically
displayed, but instead you always got generic “unhelpful” stuff about
Getting Started with Visual Studio, Code Samples and the like.
The fact that was updating and “flickering” all the time
was a constant distraction. Closing the window made the annoyance go away
until the next time you needed to look up something in MSDN (hitting F1).
MSDN appeared, but the Dynamic Help window would also come back, forcing you to have
to close it again... and again... and again.
|
|
|
|
I've never used this version because I read too many reports of it being released too soon with too many bugs.
PROS |
Settings are now stored in a .vssettings file and not the registry!
|
|
|
|
After installing SP1 (the lastest service pack), my opinion of this version is that while
its got some really cool features and is totally usable, it has some annoyances that
are so severe I wouldn't switch from the Visual Studio 7.1 IDE which thus far I feel is superior.
Sadly, this is only due to a small handful of issues listed below.
PROS |
The feature that grays out statements based on conditional preprocessor directives
is the single-most important reason I'd use this version of Visual Studio. At a glance
you can visually see which code the compiler is going to see based on your project settings
and previous #define's. This is the only feature that you might have to wait a couple seconds
for the IDE to “catch up” on after making a project alteration,
but considering the large amount of parsing going on in the background, I consider that
par for the course.
E.g.:
#ifdef WIDE
#define BUILD_CHARSET "wide"
#else
#define BUILD_CHARSET "ansi"
#endif
Intellisense appeared to be flawless.
The IDE and dialogs are extremely clean and polished.
I had no complaints about the speed of the IDE performance.
|
CONS |
Disassembly and memory debugging window colors are wrong upon debugging;
regardless of what you set the colors to, the background reverts to
the default blinding-white; as a workaround, perform the following when
beginning your first debugging session after opening Visual Studio:
workaround: tools -> options -> colors -> OK
(colors are correct until Visual Studio is restarted)
“Find in Files” for specified paths doesn't search all files and directories.
There are several different hacks on the internet, some involving undocumented key combinations,
but none of these worked for me. I had no problems searching in either
“Current Project” or “Entire Solution”. Specific paths however
simply stopped searching before walking the entire directory tree. Sometimes
when you were only searching a single directory with no subdirectories, it wouldn't search
all files, and this was intermittent! Running multiple
times with variations of extension masks produced slightly different results, but all of them
failed to search every file. For this reason I don't trust any of the file searching
capabilities of this version of Visual Studio.
IDE Editor tabs open up from left to right instead of right to left and there is no
option to enable the standard behavior! I say standard because I have never seen any
other application do this. Web browsers don't do this, at least by default, so why
should an IDE do this just to be different? Opening tabs from left to right is
natural as the English language goes from left to right; you naturally expect new
stuff to be on the right. I think its great to have the option, and it sounds
good in theory, just in case you want to always look to the leftmost tab for
the most recent document; but its a serious oversight to prevent the old behavior.
The tabbed environment was introduced in Visual Studio 7.0 (2002) and up to Visual
Studio 9.0, tabs have opened from left to right. The relevant Microsoft meeting
must have gone something like this: “Lets not only make the tabs open up on
the opposite side of the IDE, but this is such a good idea, we shouldn't allow
people to go back to the old behavior as they should embrace new technology and
change.” I have to say that trying to do any serious work with this feature
makes the IDE almost unusable. Adding insult to injury, even if you
try to get used to the “new” tab behavior, tabs will shuffle themselves
around between debugging and editing! Its like some mischievous gremlin playing
tricks on you when your brain is focused on coding, constantly interrupting the
"flow". The tab feature is flat out
buggy and... wrong. Horribly wrong. Microsoft realized their mistake by
Visual Studio 10 and users at least have the option to turn this mess off.
A static Win32 library linked with a Win32 application (same Solution) resulted in
an approximately 40% larger executable than the same code and layout built under
Visual C++ 7.1. It is true that between both versions, some compiler and linker
switches changed. So I compared every switch between the two versions. Every
switch in each version was either identical or the new equivalent option was chosen
but the result was the same. I couldn't find a difference in the build settings,
just that I got a bigger binary only with Visual C++ 9.0. Both versions used
the MultiThreaded DLL version of the Standard Library.
After installation and updates, the first couple of times I ran a C++ project under the debugger,
Visual Studio crashed after the debugged-application terminated. The problem hasn't
resurfaced yet, but then again, I think switched back to 7.1.
|
|
|
|
This was the last version of Visual C++ to work on Windows XP is 10.0. Later versions require a minimum of Vista/Windows 7.
Although I liked the look of Visual Studio 9 better as opposed to the new "themed" look,
this version has improvements over the shortcomings of the previous version.
The
Productivity Power Tools
extension is a must have, for really cool features never previously available as well as to
access some of the older functionality.
PROS |
Document tabs can now open either on the left or right!
The broken "Find in Files" feature appears to have been fixed. I can't guarantee
its bug-free, but sofar it seems to work properly.
Seems to be robust and stable.
Although I had never tried the pre-SP1 version, the SP1 IDE has yet to crash on me!
Vertical scrollbar can now display as a visual map of the document with various code
markers! (Requires Productivity Power Tools)
|
CONS |
I get a pop up tray balloon-tip
with each new start of Visual Studio sometime within the first 10 minutes
(the timer seems to be counting when I'm actually working within the IDE).
The popup title is "Improve Microsoft Visual Studio performance" and the text reads:
"Update the Windows Automation Support on this computer to make
Microsoft Visual Studio run faster. Click for more details."
Its the typical Microsoft "Your life will be better if you install this update" sales-pitch
and no obvious way to turn it off. I ignored this [XP-Only] error for quite some time before I finally
caved and installed the automation update to shut the message up. However I wasn't surprised
that it didn't make Visual Studio any faster.
No more support for raster fonts; this is so Visual Studio can implement things like
squigglies underneath misspelled words and such. Therefore all fonts have a
by-design pixel padding between lines making a font taller than normal and there is
no way to adjust this setting (or turn it off). This wouldn't be a problem if
Visual Studio changed this pixel padding color to reflect the current syntax hilighting
background color. For example, I change the background color for my code comments.
My multi-line comments that should look like one consistent block of a single background
color is instead striped with tiny lines of the default background color. Luckily the
Background Color Fix
extension solves this problem. Unfortunately the extension gets in a weird
state pretty easily and the background colors revert back to "stripes" in my comments.
Also in the realm of syntax-hilighting problems, Microsoft removed another long
standing feature where the background color used to extend to the end of the line.
Line comments as an example, easily delineated the code when the background filled
the entire line. Again, the
Background Color Fix
extension solves this problem too. Unfortunately it doesn't work on empty lines
within block comments and sometimes the extension stops working as described above
for no apparent reason. The same file that the extension stopped displaying
properly might mysteriously start working again in the same session.
I can't figure out how to change certain colors like the selection color to an
absolute color value. Whatever I configure as this color, Visual Studio has some
opacity setting somewhere that I can't find, which when combined with the configured
color, gives me a different color than what I want. Opacity is great feature, especially
for a text selection, but not being able to control the value is a hindrance.
I think document tabs looked better and more defined in Visual Studio 9, than these
new uglier ones that are "busier". Actually, I think the tabs present in Visual
Studio 7 were the best because of how plain and clean they were. This version of
Visual Studio has a close-X on each tab instead of at the far right of the tab well.
My biggest problem with this is that when I want to switch to a document and I click
in the tab, but I click in the area a little too far on the right, I sometimes hit
the large X button, closing the document instead of bring it into view. Does this
X have to be so big? I might also add that this large X irritatingly fades into
view only when the mouse hovers the tab itself. Thanks Microsoft for another
irritating UI magic trick and for bloating tabs with no setting to enable the
behavior of the previous Visual Studio versions. The
Productivity Power Tools
extension doesn't allow you to change the shape or remove the close X on the tabs,
but it does allow you to enlarge them (to a minimum size) so there is more space to
click in the left portion! The extension also offers
coloring the tabs based on different projects which is pretty cool.
This version of Visual Studio automatically creates an empty VSMacros80 directory off of the default projects
folder regardless of your macro project settings. This is actually a bug that was
still present from Visual Studio 2005! The fix/hack to add a trailing backslash to
your projects folder is described on
Stack Overflow.
Each time I add a project that lives on a network share, Visual Studio
warns me that the content is from untrusted location.
I keep unchecking "Ask me about every project in this solution" and clicking "Yes",
but I get the warnings anyway.
|
|
|
| |
|
|
|