BUG: You experience a crash in Mfc42 (d).dll during process exit on Windows 95, Windows 98, or Windows Me (271208)
The information in this article applies to:
- Microsoft Visual C++, 32-bit Enterprise Edition 6.0, when used with:
- Microsoft Windows Millennium Edition
- Microsoft Visual C++, 32-bit Professional Edition 6.0, when used with:
- Microsoft Windows Millennium Edition
- Microsoft Visual C++, 32-bit Learning Edition 6.0, when used with:
- Microsoft Windows Millennium Edition
This article was previously published under Q271208 SYMPTOMS
When a process exits, you may experience a crash in the Mfc42.dll or Mfc42d.dll file on a computer that is running Microsoft Windows 95, Microsoft Windows 98, or Microsoft Windows Millennium (Me).
CAUSE
The Mfc42(d).dll file assumes it is cleaning up on the main thread and relies on the handle map that is stored into a thread-local storage value for the main thread. If the handle map is missing, Microsoft Foundation Class Library (MFC) may crash.
On a computer that is running Windows 95, Windows 98, or Windows Me, you can run DLL_PROCESS_DETACH on any thread, rather than the thread that called the ExitProcess function. (Microsoft Windows NT and Microsoft Windows 2000 exit the process on the thread that called ExitProcess.)
RESOLUTION
Use the static MFC library and not the shared MFC dynamic-link library (DLL).
STATUSMicrosoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section.
Modification Type: | Major | Last Reviewed: | 4/29/2005 |
---|
Keywords: | kbtshoot kbBug KB271208 kbAudDeveloper |
---|
|