As we learned in a previous entry, string resources group strings into bundles of 16, each Unicode string in the bundle prefixed by a 16-bit length. Why does the Resource Compiler complain about strings longer than 255 characters?

This is another leftover from 16-bit Windows.

Back in the Win16 days, string resources were also grouped into bundles of 16, but the strings were in ANSI, not Unicode, and the prefix was only an 8-bit value.

And 255 is the largest length you can encode in an 8-bit value.

If your 32-bit DLL contains strings longer than 255 characters, then 16-bit programs would be unable to read those strings.

This is largely irrelevant nowadays, but the warning remained in the Resource Compiler for quite some time.

It appears to be gone now. Good riddance.