views:

58

answers:

2

Whether I'm loading an existing .rc file or creating a new one, visual studio has this odd tendency to split tring tables apart. I haven't really figured out if there is a pattern to it, though I've noticed it seems to have a tendency to start at ids divisible by powers of two where possible. Since the resource compiler doesn't actually care how they are broken up, it seems odd that it saves them like this. Anyone know why?

STRINGTABLE 
BEGIN
    1     "String"
    2     "String"
    3     "String"
    4     "String"
    5     "String"
    6     "String"
    7     "String"
END

STRINGTABLE
BEGIN
    8     "String"
END
A: 

I think there are two rules: there can't be more than 16 strings in a STRINGTABLE, and VS likes to put consecutive IDs in the same table.

RichieHindle
I'm not sure that's the case. Regardless, that doesn't really tell me why it is splitting up the strings.
Brian
+2  A: 

Refer to the Remarks section of the following article about STRINGTABLE on MSDN:

Remarks

RC allocates 16 strings per section and uses the identifier value to determine which section is to contain the string. Strings whose identifiers differ only in the bottom 4 bits are placed in the same section. For more information, see Q196774.

http://msdn.microsoft.com/en-us/library/aa381050(VS.85).aspx

Louis Davis