ResOrg is a product designed to take the drugery out of the process of managing Visual C++ resource symbols.
A typical Visual C++ project will contain at least resource (.rc) file. Associated with each is a symbol definition file (named resource.h by default) which contains #define directives for each of the resource symbols used in the project.
Resource symbol definitions are created and modified by the Visual C++ resource editor when the resources for a project are edited. Unfortunately, when it does so it often gets it wrong.
Just how often have you seen this message box whilst editing a dialog, even when the symbol names are different?
This happens because two symbols with the same value have been used in the same dialog template, and usually arises as a direct result of the way the resource editor allocates symbols.
The problem is that the editor is not particularly intelligent in the way it allocates symbol ID values - and does not provide any facilities to unravel the mess that can all too easily arise as a result. The end result can be a large number of conflicting resource symbol values or even unpredictable behaviour at runtime.
ResOrg came about as a result of the sheer frustration of repeatedly renumbering resource symbols in a large multi-module project (75 modules, and over 3000 symbols) by hand or by using Excel.
ResOrg includes facilities to manage resource symbols at file, module and solution level:
There are actually two versions of ResOrg - a standalone application and a Visual Studio plug-in.
The standalone ResOrg application is capable of working with virtually all Visual C++ projects (including old versions such as Visual C++ 6.0).The ResOrg Visual Studio plug-in offers the same capabilities directly within the Visual Studio environment.
ResOrg offers many features to help make managing resource symbol files easier, of which the following are a small selection:
- Easy to interpret displays of the symbols within resource files.
- Detection of out of range and conflicting symbols, both within and between resource symbol files.
- Detection and correction of incorrect "Next Symbol" values.
- Customisable HTML reports.
- Manual and automated symbol renumbering.
- Automatic exclusion of specified symbols (such as IDR_MAINFRAME) from renumbering operations
- Automatic updating of Visual Studio 2010 ribbon designer (.mfcribbon-ms) files when symbols are renumbered
- Available as both a Visual Studio plug-in (compatible with all versions of Visual Studio from Visual Studio .NET 2002 through to Visual Studio 2017) and a standalone application.
- Compatible with projects for virtually all versions of Visual C++ - including not only current versions of Visual Studio but also older versions such as Visual C++ 6.0 and eMbedded Visual C++ 4.0.