FIX: GPF/UAE When Converting String > 32K to Double Precision (93435)



The information in this article applies to:

  • Microsoft Visual Basic Professional Edition for Windows 3.0

This article was previously published under Q93435

SYMPTOMS

When converting a large string that is greater than 32K into a double precision number, a General Protection (GP) fault or Unrecoverable Application Error (UAE) can occur. An example of this problem is described in detail further below. This problem also occurs with the functions CCur, CInt, CLng, CSng as well as CDbl.

WORKAROUND

To work around the problem, break the string into two parts, an x part and a y part. Then you can print both parts one after the other and the error does not occur because each part is less than 32K. Here is an example:
   Show
   x = String(20000, "1")
   y = String(20000, "1")
   Print CDbl(x);CDbl(y)
				

STATUS

Microsoft has confirmed this to be a problem in the Standard and Professional Editions of Microsoft Visual Basic version 2.0 for Windows. This problem was corrected in Microsoft Visual Basic version 3.0 for Windows.

MORE INFORMATION

The following steps can be used to reproduce this problem:

  1. Start VB.EXE.
  2. Add the following code to the Form_Load event procedure:
       Show
       x = String(40000, "1")
       Print CDbl(x)
    						
  3. Press the F5 key to run the example and a GPF or a UAE occurs.

Modification Type:MinorLast Reviewed:1/9/2003
Keywords:kbbug KB93435