Property Sheet Bug?
Larry Wall -- tech@clearguis.com Saturday, December 09, 1995 I have been working on an app since version 2.0 of VC++ with Property Sheets. I have had no problems up to this point. With VC4.0, when DoModal() is called for the property sheet, in the MFC file: file: DlgProp.cpp method: DoModal() Line #: 663 Line = HWND hWnd - (HWND)::PropertySheet(&m_psh); When this line is implemented for the first showing of my property sheet, in my output debug window, I see: first chance exception in myprog.exe (COMCTL32.DLL): 0xC000005: Access Violation On subsequent calls to the property sheet DoModal method, this first chance exception does not result. The dialog does not crash so I am not sure if this is very serious or not. ( I am running in Debug mode or course) Any suggestions on what might be happening here? Larry..
Aaron Kardell -- akardell@usa.net Sunday, December 10, 1995 > > I have been working on an app since version 2.0 of VC++ with Property Sheets. I have had no problems up to this point. > > With VC4.0, when DoModal() is called for the property sheet, in the MFC file: > file: DlgProp.cpp > method: DoModal() > Line #: 663 > Line = HWND hWnd - (HWND)::PropertySheet(&m_psh); > > When this line is implemented for the first showing of my property sheet, in my output debug window, I see: > first chance exception in myprog.exe (COMCTL32.DLL): 0xC000005: Access Violation > > On subsequent calls to the property sheet DoModal method, this first chance exception does not result. > > The dialog does not crash so I am not sure if this is very serious or not. ( I am running in Debug mode or course) > > Any suggestions on what might be happening here? > Hi Larry, This error is caused by the OS wanting to write to a read-only resource. As long as you don't surround the DoModal() with a try/except statement you should be okay (the access violation will be passed on to the OS which will safely recover from the error). Also, you can probably give the .rsrc section read/write access. There's a KB article on this, but I don't have it's number right now. Hope this helps! Aaron Kardell akardell@usa.net
Dean McCrory -- deanm@microsoft.com Monday, December 11, 1995 Message-ID: red-48-msg951211205018MTP[01.51.00]000000f6-28649 This is covered in the VC++4 release notes. Open 'em up and search for "COMCTL32.DLL" // Dean ---------- | From: Larry Wall| To: "'MFCNews - Send'" | Subject: Property Sheet Bug? | Date: Saturday, December 09, 1995 11:36AM | | X-Received: from xnet1 by red-48-msg with receive; Sun, 10 Dec 1995 13:15:45 -0800 | X-Received: from imail1.microsoft.com by xnet1 with recvsmtp; | Sun, 10 Dec 1995 13:15:43 -0800 | Received: from tide03.microsoft.com (red-03-int.microsoft.com | [157.61.218.13]) by imail1.microsoft.com (8.7.1/8.7.1) with | SMTP id NAA11343; Sun, 10 Dec 1995 13:18:09 -0800 (PST) | Received: by tide03.microsoft.com; id NAA15562; Sun, 10 Dec 1995 13:20:14 -0800 | Received: from netcom20.netcom.com(192.100.81.133) by | tide03.microsoft.com via smap (g3.0.3) | id xma015547; Sun, 10 Dec 95 13:19:48 -0800 | Received: by netcom20.netcom.com (8.6.12/Netcom) | id LAA10385; Sun, 10 Dec 1995 11:56:40 -0800 | Message-ID: <01BAC62A.B4E8ED40@cft6.ppp247.cftnet.com> | MIME-Version: 1.0 | Content-Type: text/plain; charset="us-ascii"
Niels Ull Jacobsen -- nuj@kruger.dk Monday, January 08, 1996 > > I have been working on an app since version 2.0 of VC++ with Property Sheets. I have had no problems up to this point. > > With VC4.0, when DoModal() is called for the property sheet, in the MFC file: > file: DlgProp.cpp > method: DoModal() > Line #: 663 > Line = HWND hWnd - (HWND)::PropertySheet(&m_psh); > > When this line is implemented for the first showing of my property sheet, in my output debug window, I see: > first chance exception in myprog.exe (COMCTL32.DLL): 0xC000005: Access Violation > > On subsequent calls to the property sheet DoModal method, this first chance exception does not result. > > The dialog does not crash so I am not sure if this is very serious or not. ( I am running in Debug mode or course) > > Any suggestions on what might be happening here? I'm having the same problem (or something like it). Unfortunately, my dialog crash, so for me it's pretty serious. I'm running VC 4.0, patch level I and NT 3.51, patch level III. It seems to crash in the default processing of WM_ERASEBKGND, dereferencing a NULL pointer. I've added an OnEraseBkgrnd handler to my sheet, which just calls the default. I get an unhandled exception in COMCTL32.DLL: 0xC0000005: Access Violation. The call stack is PropSheetDlgProc@16 + 615 bytes DispatchDlgProc@20 + 33 bytes __fnGDIHANDLE@4 + 385 bytes NTDLL! 77f8a301() NTDLL! 77f8a3af() CCSMakeCall@4 + 55 bytes fnDWORD@28 + 99 bytes fnHDCDWORD@28 + 44 bytes DefDlgProcA@16 + 47 bytes CallWindowProcAorW@24 + 45 bytes CallWindowProcA@20 + 25 bytes CWnd::DefWindowProcA(unsigned int 20, unsigned int 105, long 0) line 984 + 32 bytes CWnd::Default() line 242 + 35 bytes CWnd::OnEraseBkgnd(CDC * 0x0095ec60 {hDC=0x00000069 attrib=0x00000069}) line 354 + 20 bytes CMySheet::OnEraseBkgnd(CDC * 0x0095ec60 {hDC=0x00000069 attrib=0x00000069}) line 1128 + 12 bytes CWnd::OnWndMsg(unsigned int 20, unsigned int 105, long 0, long * 0x0005f3a0) line 1745 + 19 bytes CWnd::WindowProc(unsigned int 20, unsigned int 105, long 0) line 1617 + 30 bytes AfxCallWndProc(CWnd * 0x0005f7d8 {CMySheet hWnd=0x001002b0}, HWND__ * 0x001002b0, unsigned int 20, unsigned int 105, long 0) line 209 + 26 bytes .... The instruction which fails is a mov eax,dword ptr [esi+54] which fails as esi is NULL. I haven't been able to determine exactly what causes this error, however. I'm pretty desperate for suggestions... > > Larry.. > > > -- Niels Ull Jacobsen, Kruger A/S Everything stated herein is THE OFFICIAL POLICY of the entire Kruger group and should be taken as legally binding in every respect. Pigs will grow wings and fly.
Mario Contestabile -- Mario_Contestabile.UOS__MTL@UOSMTL2.universal.com Tuesday, January 09, 1996 >> >> I have been working on an app since version 2.0 of VC++ with Property Sheets. I have had no problems up to this point. >> >> With VC4.0, when DoModal() is called for the property sheet, in the MFC file: > >file: DlgProp.cpp > >method: DoModal() > >Line #: 663 > >Line = HWND hWnd - (HWND)::PropertySheet(&m_psh); > > >When this line is implemented for the first showing of my property sheet, in my output debug window, I see: > f>irst chance exception in myprog.exe (COMCTL32.DLL): 0xC000005: Access Vio lation > > >On subsequent calls to the property sheet DoModal method, this first chance exception does not result. > > >The dialog does not crash so I am not sure if this is very serious or not. ( I am running in Debug mode or course) > > >Any suggestions on what might be happening here? The first time a property page is created from its corresponding dialog resource it may cause a first-chance exception in COMCTL32.DLL. The exception is handled by the system, ignore it. >I'm having the same problem (or something like it). Unfortunately, my >dialog crash, so for me it's pretty serious. >I'm running VC 4.0, patch level I and NT 3.51, patch level III. It >seems to crash in the default processing of WM_ERASEBKGND, >dereferencing a NULL pointer. I've added an OnEraseBkgrnd handler to >my sheet, which just calls the default. >I get an unhandled exception in COMCTL32.DLL: 0xC0000005: Access Violation. >The call stack is Is it possible the page is receiving the message without it being activated at least once? mcontest@universal.com
| Вернуться в корень Архива |