Riverblade - ResOrg - Manage and Renumber Resource Symbol IDs

ResOrg - Manage and Renumber Resource Symbol IDs

ResOrg LogoIntroduction

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.

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 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.


Enter ResOrg

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 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), whilst the ResOrg plug-in offers the same capabilities directly within Visual Studio 2002, 2003, 2005, 2008, 2010, 2012, 2013, 2015 and 2017.



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 (VS2002/2003/2005/2008/2010/2012/2013/2015/2017) and a standalone application.
  • Compatible with projects for virtually all versions of Visual C++ - including not only Visual Studio 2008, 2010, 2012, 2013, 2015 and 2017 but also older versions such as Visual C++ 6.0 and eMbedded Visual C++ 4.0.

More information on ResOrg features