Microsoft Visual Studio 6.0
This page is here as a resource for people who use Microsoft Visual Studio 6. (or MSVC 6.0). Specifically, the C++ development environment portion.
Things to Install
WTL .. it is currently at 7.x, it is an open-sourced Microsoft framework of great C++ template/wrappers around Win32 (in the same spirit of the ATL)
C++ Boost .. great C++ libs which will hopefully become part of the C++ standard
WndTabs .. nice Add-On (more below)
Visual Assist - fantastic Add-On, basically Intellisense++ (more below)
Perforce - if you use Perforce, they have a good source control add-in (I like Perforce, so I recommend this)
DbgChooser - Code for an app that lets you choose the action windows takes when an application crashes (July 2000 MSDN Magazine article by John Robbins)
Visual C++ Toolkit 2003
Microsoft released the following
Visual C++ Toolkit 2003 for free. I need to see how well it works with Visual Studio on another machine. I have used this on the same machine with Visual Studio installed, and it works fine. I used it to build a copy of Mozilla Thunderbird.
Knowledge Base Articles / MSDN
KB 154753 - Article on the C/C++ libraries linked to by the various versions of Visual C throughout the years
Major Changes in C++ Releases
Visual Studio Debugger Cheat Sheet
These are some pseudo-variables you can use in Visual Studio 6.0
@err - The last error
@err,hr - The ',hr' does an HRESULT interpretation
DW(@tib+0x24),x - The current threads ID
Another site with some good Visual Studio tips.
Precompiled Headers
If you have been baffled by the Precompiled Headers feature and you want
to
cut down your compile times signifcantly, then read this
article. It is well written and will get you using that stdafx.h properly.
Looking at EXE or DLL resources
One little known feature of Visual Studio 6 is the ability to open a file just for its resources. Just go to File->Open. Then choose the EXE/DLL and change the "Open As:" at the bottom to "Resource". Personally, I spent a bunch of time before this looking for apps that would do this for me. It wasn't till another person at work did this that I saw this. (Yeah, I should have read the manual :-). This other person read about it somewhere
and also worked on the Visual Studio 2003 dev team. So, it wasn't just me!
Modifying the .RC file and Keeping your changes
Microsoft Support has a good knowledge base
article on this issue
tailored for modifying the VERSIONINFO block.
Note, since my project wasn't MFC, and I didn't have an .rc2 file, I had
to make one. Then I just included them in View->Resource Includes
as Compile time directives. There is almost no documentation on this.
Here are two more good links on the topic.
Google Groups Post (Thanks Vagif!) and
MSDN Article
Using a Group Box in a Dialog?
If so, better make sure those WS_CLIPCHILDREN, WS_CLIPSIBLINGS is off.
A Group Box will not erase it's background and requires its parent
window to do that.
Awesome Visual Studio Add-Ons
WndTabs - this is a GREAT, FREE, add-on that puts a little tab view in the workspace. This makes it easy to click around quickly to different files. It also adds some new commands that you can bind
keys to. My favorite is the 'Header Flip'. I mapped the CTRL-~ sequence to this
new command. Now, if I'm in About.cpp, I can just hit that sequence and POW, I'm in About.h. Note, the WndTabs header flip is not as good as the one in the next Add-In I mention below.
Visual Assist - this is an absolutely great add-on. It costs money, but it is so good and they have a free trial. The three main features that is provides are: Really Improved/Fantastic completion, Really improved syntax coloring, and the ability to click on a method and then go to the definition of that method
via a listbox selector in the toolbar. Nice! ALSO, VisualAssist has a header flip command as well, in fact, it will search in the entire Workspace for the file. Very Nice!
GRETA - Nice Regex Lib for Visual C++
Update - this was written in 2003. If you aren't using the Boost regex or PCRE, I would still consider this library. It works well.
GRETA - this is a GREAT, FREE, library / C++ template system for doing Perl 5 regular expressions (regex). It was done by a nice fellow named Eric Niebler while he was at Microsoft.
There are three things to keep in mind while using it. First, there is a separate one for commercial/free use here at
GotDotNet. It's in the PowerTools zip file. Second, you will need
to tweak the files (as shown below) for Visual Studio 6.0. Third, I have
found the quality of this lib to be very high, if your regex isn't matching, it is probably your bug, not GRETA's
Here is how I built it in Visual Studio 6.0. First, I downloaded the package into a directory called C:\Greta. Then I created a new Win32 Static Library project (and Workspace) called Greta with it's location as C:\Greta. I didn't enable pre-compiled headers or MFC (of course).
After that is done, just add the files to the Source Files folder for
the project.
The next thing to do (for Visual Studio 6.0) is to move the
REGEX_RESET_STK_OFLW() macro definition. The
_resetstkoflw() function is only available for visual studio 7.0. The
syntax2.h file should look like this.
#ifdef _MSC_VER
# include
# define REGEX_ASSERT(x) _ASSERTE(x)
# define REGEX_FORCEINLINE __forceinline
# define REGEX_SELECTANY __declspec(selectany)
# define REGEX_CDECL __cdecl
# define REGEX_SEH_TRY __try
# define REGEX_SEH_EXCEPT(x) __except( x )
# if 1200 < _MSC_VER
# define REGEX_RESET_STK_OFLW() _resetstkoflw()
# define REGEX_NOINLINE __declspec(noinline)
# define REGEX_DEPRECATED __declspec(deprecated)
# define REGEX_DEPENDENT_TYPENAME typename
# else
# define REGEX_RESET_STK_OFLW() ((void)0)
# define REGEX_NOINLINE
# define REGEX_DEPRECATED
# define REGEX_DEPENDENT_TYPENAME
# endif
You can now compile or build the library. The debug build will emit a lot of warnings (C4786) which are exptected from Visual Studio 6.0.
Interesting Google Groups Thread on VC 6.0 Optimizer
manfreds Access Violation with O2
int 3 for a breakpoint