Article ID: 138993
Article Last Modified on 11/21/2006
APPLIES TO
- Microsoft Foundation Class Library 4.2, when used with:
- Microsoft Visual C++ 5.0 Learning Edition
- Microsoft Visual C++ 2.0 Professional Edition
- Microsoft Visual C++ 2.1
- Microsoft Visual C++ 6.01 Professional Edition
- Microsoft Visual C++ 4.0 Professional Edition
This article was previously published under Q138993
SYMPTOMS
While using the Visual C++ debugger, if you click Print or Print Preview in an MFC application running under Windows NT version 3.51 Checked Build, a message box appears:
In the Visual C++ 2.x debugger, the message box contains:
In the Visual C++ 4.0 debugger, the message box contains:
The following message is also printed in the Output Window of the debugger:
CAUSE
MFC queries an HDEVNAMES handle for information about the printer device. This information is obtained by making calls to GlobalLock to get a valid pointer to the DEVNAMES structure. Under Win32, it is not technically necessary to call GlobalUnlock for every GlobalLock, so MFC doesn't always do so.
The Checked Build of Windows NT 3.51 provides debugging information that warns you when GlobalFree is called on an object that does not have a lock count of 0. When this occurs, it outputs a trace message and causes a hard coded break instruction to be executed.
RESOLUTION
The message and the break can be safely ignored. To continue with execution in the debugger, you can just click Go on the Debug menu, or press the F5 key.
STATUS
This behavior is by design.
Additional query words: 2.00 2.10 2.20 4.00 3.00 3.10 3.20
Keywords: kbbug kbdebug kberrmsg kbprb kbprint KB138993