Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS Tech Support » Crash on exit (CExtComboBox) Collapse All
Subject Author Date
Michał Bobruk May 7, 2010 - 6:40 AM

Hi.

I have a problem. My application (using Prof-UIS V2.88 MBCS) sometimes crashes on exit. Unhandled exception is received in ExtComboBox.cpp line 265.

The call stack is below. Is there a fix for this?




ProfUIS288md.dll!CExtComboBoxPopupListBox::WindowProc(unsigned int message=130, unsigned int wParam=0, long lParam=0)  Line 265 + 0x26 bytes C++

ProfUIS288md.dll!CExtNCSB_Impl<CExtComboBoxPopupListBox>::WindowProc(unsigned int message=130, unsigned int wParam=0, long lParam=0)  Line 1168 + 0x14 bytes C++

mfc90d.dll!AfxCallWndProc(CWnd * pWnd=0x036647c8, HWND__ * hWnd=0x010f0e0a, unsigned int nMsg=130, unsigned int wParam=0, long lParam=0)  Line 240 + 0x1c bytes C++

mfc90d.dll!AfxWndProc(HWND__ * hWnd=0x010f0e0a, unsigned int nMsg=130, unsigned int wParam=0, long lParam=0)  Line 403 C++

mfc90d.dll!AfxWndProcBase(HWND__ * hWnd=0x010f0e0a, unsigned int nMsg=130, unsigned int wParam=0, long lParam=0)  Line 441 + 0x15 bytes C++

user32.dll!7e368734()  

[Frames below may be incorrect and/or missing, no symbols loaded for user32.dll] 

user32.dll!7e37bdf1()  

user32.dll!7e38ebc9()  

user32.dll!7e38eb8f()  

msvcr90d.dll!1023d496()  

user32.dll!7e368734()  

user32.dll!7e368816()  

user32.dll!7e37a013()  

user32.dll!7e37a998()  

mfc90d.dll!CWnd::DefWindowProcA(unsigned int nMsg=130, unsigned int wParam=0, long lParam=0)  Line 1043 + 0x20 bytes C++

mfc90d.dll!CWnd::Default()  Line 274 C++

mfc90d.dll!CWnd::OnNcDestroy()  Line 853 C++

OptionTrader.exe!CMyExtComboBox::OnNcDestroy()  Line 95 C++

mfc90d.dll!CWnd::OnWndMsg(unsigned int message=130, unsigned int wParam=0, long lParam=0, long * pResult=0x0012d868)  Line 2042 C++

mfc90d.dll!CWnd::WindowProc(unsigned int message=130, unsigned int wParam=0, long lParam=0)  Line 1755 + 0x20 bytes C++

ProfUIS288md.dll!CExtComboBoxBase::WindowProc(unsigned int message=130, unsigned int wParam=0, long lParam=0)  Line 2838 C++

ProfUIS288md.dll!CExtComboBox::WindowProc(unsigned int message=130, unsigned int wParam=0, long lParam=0)  Line 4179 C++

mfc90d.dll!AfxCallWndProc(CWnd * pWnd=0x0361b0b8, HWND__ * hWnd=0x00b00e84, unsigned int nMsg=130, unsigned int wParam=0, long lParam=0)  Line 240 + 0x1c bytes C++

mfc90d.dll!AfxWndProc(HWND__ * hWnd=0x00b00e84, unsigned int nMsg=130, unsigned int wParam=0, long lParam=0)  Line 403 C++

mfc90d.dll!AfxWndProcBase(HWND__ * hWnd=0x00b00e84, unsigned int nMsg=130, unsigned int wParam=0, long lParam=0)  Line 441 + 0x15 bytes C++

user32.dll!7e368734()  

user32.dll!7e37bdf1()  

user32.dll!7e378ea0()  

user32.dll!7e37b16f()  

ntdll.dll!7c90e473()  

user32.dll!7e37b1a8()  

mfc90d.dll!CWnd::DestroyWindow()  Line 1007 + 0xd bytes C++

90909090() 

Technical Support May 7, 2010 - 12:13 PM

The top record in the call stack listing points to the line 265 which is inside the CExtComboBoxPopupListBox::WindowProc() method:

   if( hWndCB != NULL && ::IsWindow( hWndCB ) && m_pCB != NULL && LPVOID(CWnd::FromHandlePermanent(hWndCB)) == LPVOID(m_pCB) )

This line should not cause any crashes because first two conditions allow the next conditions to run safe. The following code lines can be found above the crashing line of code:
   if( ! ( hWndOwn != NULL && ::IsWindow( hWndOwn ) ) )
                        return lResult;

This code checks whether the popup list box is also not destroyed yet.
Please check the entire call stack listing contains only one assertion. If it contain several assertions, then only the bottom assertion is important.