In an .rc file strings are grouped by sections of at most 16 strings.
So in a typical .rc file we usually have something like this:
...
STRINGTABLE // section 1
BEGIN
IDS_SOMEID_1 "Some text 1"
IDS_SOMEID_2 "Some text 1"
IDS_SOMEID_3 "Some text 3"
END
STRINGTABLE // section 2
BEGIN
IDS_SOMEID_4 "Some text 4"
IDS_SOMEID_5 "Some text 5"
IDS_SOMEID_6 "Some text 6"
END
...
and the IDs of the strings in one section only differ by the least 4 bits.
I wonder why these sections need to be specified explicitely in the .rc file. The resource compiler could take care of this entirely so we could have one single stringtable per .rc file section like this:
STRINGTABLE
BEGIN
IDS_SOMEID_1 "Some text 1"
IDS_SOMEID_2 "Some text 1"
IDS_SOMEID_3 "Some text 3"
IDS_SOMEID_4 "Some text 4"
IDS_SOMEID_5 "Some text 5"
IDS_SOMEID_6 "Some text 6"
END
Does anyone have a rational explanation?
I found some (insufficient) explanations here:
- STRINGTABLE resource
- MS knowledge base Q196774 (link doesn't work anymore)