Environment: VC6 SP3,Win98
The Useful managers Visual Studio add-in provides a number of workspace-related
functions for C++ programs.
1) Tag indexing and search
Tag Manager window provides a graphical view of classes and parent/children
relationships in the workspace and additional directories (MFC source for
example). Can find by name declaration of class, struct, template, function,
union, enum, typedefs, defines, externs, variables, members, file includes,
interfaces and files.
One-click tag search: quickly finds declaration of selected tag (class,
function, etc.) and positions cursor on it.
Automatic #include insertion. Automatically adds #include statement for
header file with declaration of selected tag.
2) Window helpers
Window Manager presents much more convinient alternative to standard “Windows”
dialog. Window list can be sorted by name, time, extension or directory.
Grouped sorting is suppored, i.e. you can sort by one attribute withing
groups sorted by another attribute.
Session Manager saves sets of opened windows, and allows to switch between
- Favorites Manager allows to quickly open files from a list of favorites.
Auto-save option saves files automatically when switching from Visual Studio
to another application.
Header/source toggle button. Switches between .cpp or .c and .h. For .rc
files switches between resource editor and text mode.
3) Build system
Quickly build selected projects of the workspace without checking dependencies
and then run the program in one mouse click.
And thats all only in 112K dll.
Installing the Useful Managers
The process for installing the Useful Managers in the Visual Studio environment
is described below.
1. Close all instances of Visual Studio.
2. Extract the UsefulManagers.dll and UsefulManagers.reg from the .ZIP
3. Double-click on UsefulManagers.reg file and answer “Yes”.
4. Copy the UsefulManagers.dll to your DevStudio\SharedIDE\Addins directory
(Visual Studio 97) or Microsoft Visual Studio\Common\MSDev98\Addins directory
(Visual Studio 6.0).
5. Open Visual Studio.
6. Go to Tools->Customize->Add-ins and Macro Files.
7. Click the check on Useful Managers Addin.
8. Click Close.
Using Useful Managers
You can set size and position of all resizeable windows
from add-in and they will be saved automaticaly.
Use options dialog to customize preferences for add-in.
1. Run <Update> method to build tags database (ESC to cancel). The database
will be placed in tags.dat file in the same directory as the workspace.
There are two directories for recursive search: directory of your workspace
(if any opened) and additional directory which you can choose (for example
2. Please edit UsefulManagers.reg if you have such constructs
class EXPORT MyObject
and yould like to skip EXPORT tag.
2. In tree view you will see parents and children of selected class
-> double-click on parent or children to go to it, or source lines with
this tag -> double-click on them to open file at specified line.
3. double-click on class (struct) to open file with its declaration.
Note: There is a limit – 32000 tags of each type. So if you select
additional directory C:\DevStudio, please do not find defines. Do you know
that there are more than 70000 defines in DevStudio\Include\*.h?
a) Which tags to find:
class, enum, struct, and union names
names defined by #define
enumerators (enumerated values)
function definitions, prototypes, and declarations
variables (definitions and declarations)
class, struct, and union members
b) Files to search in:
“headers” – *.h, *.hpp
“sources” – *.cpp, *.c
c) Additional Directory
d) Update information:
“manual” – only when you run <Update> method
“auto” – when you try to use tags base for the first time
after opening of Visual Studio.
Our team has about 30 projects in one workspace. So I can’t use browse
info – it is too slow. And how can I find declaration of unknown for me
class? Look for it in all 30 project – that is not for me and I think for
The solution is: select a word and run <Find tag> method – that’s
You can run <Find tag> method without selection any word, you will
see input dialog with text from clipboard in it. You can type your own
word or part of it. Select “case-sensitive” option and “beginning” option
– is it the beginning of what you want to find. Type “CO*Except” if you
want to get this list:
You can use Unix-style (? * + .  [^] \ $ () |) or Windows-style
(? * ) regular expressions if you’ve forgot a name of your class.
Unix-style or Windows-style regular expressions.
What tags to find (“class”,”struct”, “function”,”enum”,”enum
1. Open some files.
2. Run <Session Manager>.
3. Press insert key.
4. Rename session as you like.
Now you can close all your files, Run <Session Manager> and select
your session (Enter or double-click) -> all that files will be opened.
Note: Nothing is closed when you select any session.
Run <Favorites> method.
You’ll see list of your “favorite” files (empty at first).
Then you can add new file (active at this moment) using button “insert”
or delete recent file by Del key.
Double-click (press “enter”) on file to open it.
This method is useful when you get error message like this “D:\Project\File.cpp(33)
error C2065: ‘MyObject’ : undeclared identifier”.
I suggest you to:
a) Double-click on error string in debug window.
b) Select word MyObject.
c) Run <Insert Include> method.
As a result you will see new line “#include “Objects.h” in File.cpp.
Of course you can run <Insert Include> method before getting error
and type “MyObject” in input dialog.
Build And Run
Select by double-click some projects in options dialog.
Then run <Build And Run> button. A new thread with high priority
will be started which will build your projects and then try to run your
program. This is useful when you often change files in one particular (not
Call “SaveAll” method of Visual Studio when switching to another task.
Please be careful with this option, especially if you use something like
Header/source switching (*.cpp,*.c <-> *.h,*.hpp; *.rc resources mode
-> text mode).
Shows sortable list of windows (file name, directory, extension, last opened
Click on column to select sort method (it will be remembered). If you’ll
select directory column than the name of a file will be used for the second
You can use Ctrl+A, Del, Enter keys.
You can remove columns with directory,extension,time.
Close or not dialog immediately after selecting a file.
Anton Riabov for his comments and recommendations.