OverviewWhen I attempted to use the various toogleheader macros freely availabe in the open source space, Developer Studio would continually crash for such simple things as the file not existing! I think this is a result of a bug in the scripting engine, when you try to open a nonexisting file. Therefore, I decided to write a true Visual Studio Add-In to solve this problem.
InstallationHere are the installation notes to copy and register this Add-In's .DLL and to use it from Visual Studio.
- Unpack the DLL from the accompanying .zip file to the Visual Studio Add-Ins folder (typically c:\program files\microsoft visual studio\common\msdev98\addins).
- From there, open a command window and after navigating to the aforementioned "Add-Ins" folder, run the following program.
c:\program files\microsoft visual studio\common\msdev98\addins>regsvr32 toogleh.dll
- Once you've done that, start Visual Studio and click on the Tools->Customize menu option
- As you can see in the figure above, at this point the Add-In will appear in Customize dialog. Simply click the checkbox next to it and then click the dialog's Close button.
- Now a new toolbar should be created with a single button on it representing your new Add-In. Simply click this button any time you want to open a .cpp file's associated .h file (or vice versa)!
How it Works
Once the target file has been established, the Add-In first searches for this file in the current folder. If it can't find the it, the search continues in a subdirectory called "include" (if one exists). If the search is still unsuccessful, the Add-In then searches in the current folder's parent folder.
Here's a couple of examples of how the search would take place.
Sample: Currently open file : folder\src\sample.cpp -> 1. look project folder\src\sample.h 2. look project folder\src\sample.hpp 3. look project folder\src\include\sample.h 4. look project folder\src\include\sample.hpp 5. look project folder\include\sample.h 6. look project folder\include\sample.hpp Currently open file : folder\include\sample.h -> 1. look project folder\include\sample.c 2. look project folder\include\sample.cpp 3. look project folder\include\src\sample.c 4. look project folder\include\src\sample.cpp 5. look project folder\src\sample.c 6. look project folder\src\sample.cpp