FIX: Label Properties Cause Illegal Operation (163037)



The information in this article applies to:

  • Microsoft Visual FoxPro for Windows 5.0
  • Microsoft Visual FoxPro for Windows 5.0a

This article was previously published under Q163037

SYMPTOMS

Running a program that instantiates a form containing a label that has properties of Autosize and WordWrap together causes a stack fault.

In Windows 95, the message shows a dialog box with Visual FoxPro as its title saying the following:
This Program has performed an illegal operation and will be shut down.
The Details button opens a message saying the following:
VFP caused a stack fault in module VFP.EXE.
In Windows NT, the message is in a Dr. Watson dialog box and says the following:
An application error has occurred and an application error log is being generated. VFP.exe - Exception: stack overflow [0xc00000fd]. Address<...>.
After the error message appears, VFP shuts down.

RESOLUTION

The error does not occur if the label properties include either AutoSize or WordWrap, but not both.

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This has been corrected in Visual FoxPro 6.0.

MORE INFORMATION

The same error may occur from a label on a form generated by the Form Builder. The workaround in that situation is different. For more information on that form of the problem, please see the following article in the Microsoft Knowledge Base:

162253 PRB: Form Builder Form Causes Illegal Operation

Steps to Reproduce Behavior

Copy the following code into a program named LabelTest.prg, then run the program:

   ********************************************************
   *- LabelTest.prg
   *-  A program to demonstrate the effect of combining the
   *-  Autosize and WordWrap properties on a label.
   ********************************************************
   PUBLIC x
   x=CREATEOBJECT("Form")
   x.AddObject("mylabel","test")
   x.Visible=.t.

   DEFINE CLASS test AS label
     AutoSize = .T.
     WordWrap = .T.


     PROCEDURE Init
       LOCAL lcTest,lcname
       lcname=THIS.NAME+"A" && Get a unique name
       THIS.PARENT.ADDOBJECT(lcname,'label')
       lcTest=lcname

       WITH THIS.PARENT.&lcTest
         .AUTOSIZE=THIS.AUTOSIZE
         .WORDWRAP=THIS.WORDWRAP   && Comment this line for success.
         .VISIBLE=.T.
       ENDWITH
     ENDPROC
  ENDDEFINE
						


Modification Type:MajorLast Reviewed:10/16/2002
Keywords:kbBug kbProgramming KB163037