HOWTO: How To Calculate String Length in Registry

ID: Q94920


The information in this article applies to:
  • Microsoft Win32 Application Programming Interface (API), used with:
    • Microsoft Windows NT versions 3.1, 3.5, 3.51, 4.0
    • Microsoft Windows 95, version 4.0
    • Microsoft Windows 2000


SUMMARY

When writing a string to the registry, you must specify the length of the string, including the terminating null character (\0). A common error is to use strlen() to determine the length of the string, but to forget that strlen() returns only the number of characters in the string, not including the null terminator.

Therefore, the length of the string should be calculated as:

strlen( string ) + 1
Note that a REG_MULTI_SZ string, which contains multiple null-terminated strings, ends with two (2) null characters, which must be factored into the length of the string. For example, a REG_MULTI_SZ string might resemble the following in memory:
string1\0string2\0string3\0laststring\0\0
When calculating the length of a REG_MULTI_SZ string, add the length of each of the component strings, as above, and add one for the final terminating null.

Additional query words: 3.10 3.50

Keywords : kbKernBase kbNTOS310 kbNTOS350 kbNTOS351 kbNTOS400 kbWinOS2000 kbRegistry kbWinOS95 kbDSupport kbGrpKernBase
Version : winnt:3.1,3.5,3.51,4.0
Platform : winnt
Issue type : kbhowto


Last Reviewed: January 11, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.