Riverblade - ResOrg - Manage and Renumber Resource Symbol IDs


ResOrg - Manage and Renumber Resource Symbol IDs

ImageIntroduction

The Resource ID Organiser (ResOrg for short) is an Add-in for Visual C++ designed to help overcome one of the most annoying (and unnecessary) chores of developing/maintaining Windows applications - maintaining resource symbol ID values.

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 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. How often have you seen this message box whilst editing a dialog:

Duplicate ID

...even when the symbol names are different? This happens because two symbols with the same value are 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.

 

Enter the Resource ID Organiser

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. Surprisingly, there aren't any other tools to perform this seemingly straightforward task, though there is a macro on CodeGuru which does something similar - see the article (Sequentially Renumber Resource IDs).

ResOrg facilities to manage resource symbols at file, module and solution level:

 Image

There are actually two versions of ResOrg. As well as add-ins for Visual C++ 5.0/6.0 and .NET, a standalone application is available which has the same functionality. All versions are capable of reading Visual C++ solutions and offer equivalent functionality.

 

Features

ResOrg offers many features to help make managing resource symbol files easier, of which the following are a small selection:

More information on ResOrg features

 

Credits

ResOrg in its current form would not have been possible without the existence of CodeProject, CodeGuru and MSDN Magazine (formerly Microsoft Systems Journal). Code from these sources used by ResOrg includes:

Many thanks are also due to Oz Solomonovich for his excellent WndTabs add-in (which gave us the inspiration to get started on this in the first place) and Nick Hodapp (then the Visual C++ .NET Product Manager) for making the development of ResOrg.NET possible.