On this page you will find answers to some common questions about ResOrg.
- Which operating systems does ResOrg support?
- Which versions of Visual Studio and Visual C++ is ResOrg compatible with?
- How does ResOrg pick the ranges to use for symbols when renumbering them?
- What happens when I renumber the symbols in a project?
ResOrg is supported on 32 and 64 bit installations of Windows 7, Windows 8, Windows 8.1, Windows 10 and Windows Server 2012-2019. It has previously also been tested on Windows 2000 SP4, Windows Server 2003 (SP1 and R2), Windows XP (SP2 and SP3), Windows Vista (RTM and SP1/2) and Windows Server 2008.
Please contact us if you have any queries about compatibility with a particular platform or service pack level.
The ResOrg plug-in for Visual Studio is compatible with all versions of Visual Studio from Visual Studio .NET 2002 through to Visual Studio 2022 (with the exception of Express Editions, which are unable to load third party plug-ins).
In addition, the standalone ResOrg application is compatible with pretty much all Visual C++ generated projects, including those for Visual C++ 6.0 and eMbedded Visual C++ 4.0.
In order to pick sensible ranges, ResOrg prescans the symbols in the resource file, to determine what ranges to use. It does this by dividing symbols into two types: resources (menus, dialogs, controls etc.) and commands, and computing an average value for each, based on the symbol values found. The suggested base values are basically the highest multiple of 1000 below the average value.
In most cases this works well. If however, the existing values of the symbols are widely separated in value, it may pick a value in the middle, which may not be what you expect! If this happens don't worry - simple type in your own values. The next time the file is renumbered, the Wizard will use your new values as the basis of its calculations, and should give a more accurate answer.
Once the symbol ranges have been calculated (see the previous question for details on how this is done), the following sequence of operations occur:
Firstly, the symbols in the file are sorted into alphabetical order (in memory; nothing is written to the resource symbol file yet!). ResOrg will then allocate a value for each symbol, using the base values determined by the Wizard or specified by the user.
Assuming that the user chooses to save the changes, things get (unnecessarily) interesting. ResOrg has to deal with two issues here:
- In some cases (notably bitmaps in dialogs) the symbol IDs are stored in the .rc file as literal values. Thus, changing the symbol value outside of the IDE can break the project.
- When symbols are changed, Visual C++ may not rebuild the project correctly unless it is cleaned first.
The solutions to these issues are, respectively:
- Read and parse the .rc file and modify it. This is not for the faint hearted, but at least the file format is well documented (this operation is planned to be automated in a future version of ResOrg).
- Determine which projects are dependent upon the modified file and clean them. ResOrg does not yet do this, although we may add this capability at some point if there is sufficient demand.