INFO: LenB Returns in-Memory Size of User-Defined Type

ID: Q137729

The information in this article applies to:

SUMMARY

LenB function returns the in-memory size of a user-defined type (UDT).

MORE INFORMATION

Visual Basic 32-bit structures are DWORD aligned (four bytes) when stored in memory. Fixed-length strings use two bytes for every character to account for UNICODE. String descriptors use four bytes each. Integers use two bytes. Please refer to the Visual Basic Help file for the lengths of all the other data types.

Example One

Consider this example UDT:

   Type Generic
     FirstName as String * 5
     LastName as String
     ChildrenAges (1 to 5) as Byte
   End Type

This UDT requires the following number of bytes: Applying DWORD alignment gives a total of 21 bytes as follows: Therefore:

   LenB(Generic) = 21
   Len (Generic) = 14

Example Two

Consider this example UDT:

   Type Generic
     FirstName as String * 7
     LastName as String * 6
     ChildrenAges (1 to 5)  as Byte
     Address * String
   End Type

This UDT requires the following number of bytes: Applying DWORD alignment gives a total of 36 bytes as follows: Therefore:

   LenB(Generic) = 36
   Len (Generic) = 22
Keywords          : kbenv kbprg kbVBp400 PrgOther VB4WIN vbwin kb32bitOnly 
Version           : WINDOWS:4.0
Platform          : WINDOWS
Issue type        : kbinfo

Last Reviewed: October 1, 1997