Re: Aborting a MFC program Problem
This is clearly a very old post, but could you explain a little bit more about how you solved the issue?
I'm trying to write an OpenGL application, and am in the unusual position where it works just fine on some machines but instantly throws the same exception you were getting on others.
My LoadFrame method looks like this:
BOOL CMainFrame::LoadFrame(UINT nIDResource, DWORD dwDefaultStyle, CWnd* pParentWnd, CCreateContext* pContext)
// base class does the real work
if (!CFrameWndEx::LoadFrame(nIDResource, dwDefaultStyle, pParentWnd, pContext))
// enable customization button for all user toolbars
bNameValid = strCustomize.LoadString(IDS_TOOLBAR_CUSTOMIZE);
for (int i = 0; i < iMaxUserToolbars; i ++)
CMFCToolBar* pUserToolbar = GetUserToolBarByIndex(i);
if (pUserToolbar != NULL)
pUserToolbar->EnableCustomizeButton(TRUE, ID_VIEW_CUSTOMIZE, strCustomize);
....but in the instances where the 0xfeeefeee exception occurs, LoadFrame still returns true.
Thank you in advance for even looking at my code if you get the chance!
On Wednesday, January 11, 2006 2:30:02 AM UTC-5, TPFGuru wrote:
I solved it. I found that the pFrame->LoadFrame call in my main app was not
checking the BOOL return code. I added a check to that, and it now works.
It was calling the ShowWindow() function next, which explains the error.
I created my MFC app as SDI without doc/view support. The
CMyWindowFrame::OnCreate function creates the status and tool bars, and
returns -1 if a failure occurs. So, I decided to put my code here to also
return -1 if my app fails to create a DirectX device.
I am messing around with the device creation and actually caused it to fail,
but when my app returns -1 in the OnCreate function, I get an exception in a
MFC program (winocc.cpp):
BOOL CWnd::ShowWindow(int nCmdShow)
ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL));
if (m_pCtrlSite == NULL)
return ::ShowWindow(m_hWnd, nCmdShow);
It bombs on the last instruction, because m_pCtrlSite is 0xfeeefeee.
Now I wonder what would happen if it failed to create the status bar or
toolbar. Did I find a bug in MFC (no one ever tested the failure to create
the other resources)?
I tried to add the AfxAbort() command, but it is not very graceful either.
How can I make the program exit in this situation?