BUG: UserControl Causes VB IDE to Crash on Shutdown (190519)
The information in this article applies to:
- Microsoft Visual Basic Learning Edition for Windows 5.0
- Microsoft Visual Basic Learning Edition for Windows 6.0
- Microsoft Visual Basic Professional Edition for Windows 5.0
- Microsoft Visual Basic Professional Edition for Windows 6.0
- Microsoft Visual Basic Enterprise Edition for Windows 5.0
- Microsoft Visual Basic Enterprise Edition for Windows 6.0
This article was previously published under Q190519 SYMPTOMS
A UserControl is added to a Visual Basic project. When you try to exit the
IDE, Visual Basic causes an Invalid Page Fault (IPF) and terminates. This
is preceded by the error message:
The memory could not be "written".
CAUSE
The problem is that the UserControl has two module level variables, one
that holds onto a reference to the UserControl itself (Set m_oMe = Me) and
another that holds a reference to control's parent (Set m_oParent =
Extender.Parent). This causes a circular reference count on the control and
the container. When you try to exit the IDE, Visual Basic destroys the
design-time form container and attempts to release the UserControl
instance. Because the control has a reference to itself and the form,
Visual Basic cannot properly destroy the objects; consequently an Invalid
Page Fault occurs.
RESOLUTION
Avoid setting module level variables that reference both a control and its
container. Setting the variables to Nothing in the UserControl_Terminate
event will not avoid the error because the Terminate event will never fire
if the control has a circular reference.
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of this article. We are researching this bug and will post
new information here in the Microsoft Knowledge Base as it becomes
available.
REFERENCES
For additional information, please see the following articles in the
Microsoft Knowledge Base:
189156
: BUG: Crash When Closing Application That Uses ActiveX DLL
184332
: BUG: UserControl in VB4 or VC++ 5.0 Container Causes IPF on Exit
Modification Type: | Major | Last Reviewed: | 5/13/2003 |
---|
Keywords: | kbbug KB190519 |
---|
|