PRB: Can't Have Fixed Length Strings >32K in 32-bit Windows

ID: Q129802


The information in this article applies to:
  • Microsoft Visual Basic Standard, Professional, and Enterprise Editions, 32-bit only, for Windows, version 4.0


SYMPTOMS

Attempting to create fixed-length strings within a user-defined type in the 32-bit version of Microsoft Visual Basic version 4.0 generates this error:

"Fixed or static data can't be larger than 64K"


CAUSE

Because 32-bit Microsoft Visual Basic uses Unicode to store strings and Unicode requires two bytes per character in a string, fixed-length strings take twice as many bytes of storage as the 16-bit versions of Visual Basic. If you assign or dimension more that 32K characters to a string, the storage actually exceeds the 64K limit of Visual Basic user-defined types.


RESOLUTION

Larger strings can be assigned to string elements of user-defined types by using variable-length strings instead of fixed-length strings.


STATUS

This behavior is by design.


MORE INFORMATION

Steps to Reproduce Behavior

  1. Start a new project in Visual Basic. Form1 is created by default.


  2. Add a code module (Module1) to your project by choosing Module from the Insert menu.


  3. Add the following code to the General Declarations section of Module1:
    
          Type MyType
             MyString As String * 33000
          End Type 


  4. Start the program by choosing Start from the Run menu or by pressing the F5 key. You should see the following run-time error message:
    "Fixed or static data can't be larger than 64K"


Additional query words: double byte character set dbcs

Keywords : kberrmsg kbprg kbVBp400 PrgOther VB4WIN vbwin kb32bitOnly
Version : WINDOWS:4.0
Platform : WINDOWS
Issue type : kbprb


Last Reviewed: October 22, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.