FIX: DDX for Short Causes Stack Corruption (152384)
The information in this article applies to:
- Microsoft Visual C++ 4.0
- Microsoft Visual C++ 4.1
- Microsoft Foundation Classes (MFC)
This article was previously published under Q152384 SYMPTOMS
Using the Class Wizard to associate a short with a control on a dialog may
result in the following behavior:
- Access Violation when UpdateData(TRUE) is called.
-or-
- Other member variables of the dialog are corrupted after the
call to UpdateData(TRUE).
CAUSE
The overloaded DDX routine for short has a bug where it assumes that the
variable is of type int instead of short. This may result in stack
corruption because a short occupies less space than an int.
RESOLUTION
To resolve this problem, use an int instead of a short. If you want to
limit the values to the range of values that can be represented by a short,
set the appropriate limits for the int variable.
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of this article. This bug was corrected in Visual C++ 32-
bit Edition version 4.2.
Modification Type: | Major | Last Reviewed: | 11/18/2003 |
---|
Keywords: | kbBug kbfix kbNoUpdate KbUIDesign kbVC420fix KB152384 |
---|
|