Microsoft KB Archive/129802

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

Article ID: 129802

Article Last Modified on 11/18/2003

-

APPLIES TO


 * Microsoft Visual Basic 4.0 Standard Edition
 * Microsoft Visual Basic 4.0 Professional Edition
 * Microsoft Visual Basic 4.0 32-Bit Enterprise Edition

-



This article was previously published under Q129802



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.



Steps to Reproduce Behavior
 Start a new project in Visual Basic. Form1 is created by default. Add a code module (Module1) to your project by choosing Module from the Insert menu.  Add the following code to the General Declarations section of Module1: Type MyType MyString As String * 33000 End Type  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 kb32bitonly kbprogramming kbprb KB129802

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.