Prev: MFC , domodal() crashes at VERIFY(RunModalLoop(dwFlags) == m_nModalResult);
Next: CListCtrl gets NM_CLICK, but not NM_DBLCLK
From: Neel on 24 Jan 2008 03:50 Hi Tom thanking you for post... here is my dialog code.. ///////////////////////////////////////////////////////////////////////////// // CDeleteJed dialog CDeleteJed::CDeleteJed(CWnd* pParent /*=NULL*/) : CDialog(CDeleteJed::IDD, pParent) { //{{AFX_DATA_INIT(CDeleteJed) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT m_bDelete = 0; } void CDeleteJed::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDeleteJed) // NOTE: the ClassWizard will add DDX and DDV calls here //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CDeleteJed, CDialog) //{{AFX_MSG_MAP(CDeleteJed) ON_WM_WINDOWPOSCHANGED() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDeleteJed message handlers BOOL CDeleteJed::OnInitDialog() { CDialog::OnInitDialog(); CListCtrl *pList=(CListCtrl *)GetDlgItem(IDC_JED_LIST); pList->SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES ); DrawCol(); AddJedList(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } CDeleteJed d(this); goes into constructor and also oninit inturn DrawCol(); AddJedList(); successfully while d.DoModal(); it goes into windows core files and crashes as u know. FYI IDD code is correct from resource.h ..... any comments Regds Neel On Jan 23, 7:24 pm, "Tom Serface" <tom.nos...(a)camaswood.com> wrote: > Hi Neel, > > Could be something wrong in your dialog code. Could you post the start up > code for CDeleteJed? Is it just a small dialog. > > Also, check to make sure you didn't load a different set of resources from a > resource DLL that perhaps has a different ID number of dialog in the same > place as this one in your original code. > > One more thought, and it's just a guess, but are you trying to close the > dialog automatically by pumping a message to it. Maybe the message is > getting processed before the dialog is done opening. That's not likely the > case, but ... > > Tom > > "Neel" <urn...(a)gmail.com> wrote in message > > news:3a6924b6-7ade-42ec-9019-12bc5e3a11f6(a)1g2000hsl.googlegroups.com... > > > > > Hi freinds, > > > please help on debug assert error while using domodal(). > > > CDeleteJed d(this); > > d.DoModal(); > > > when i debug i found assert as followed > > > => > > > VERIFY(RunModalLoop(dwFlags) == m_nModalResult); > > > => > > > ASSERT(ContinueModal()); > > // pump message, but quit on WM_QUIT > > if (!AfxPumpMessage()) { > > AfxPostQuitMessage(0); > > return -1; > > > } > > > => > > > BOOL AFXAPI AfxPumpMessage() > > { > > CWinThread *pThread = AfxGetThread(); > > if( pThread ) > > return pThread->PumpMessage(); > > else > > return AfxInternalPumpMessage(); > > > } > > > => > > debug assertion failed . please help > > > Thanks in adv. > > Neel- Hide quoted text - > > - Show quoted text -
From: Tom Serface on 25 Jan 2008 18:42 In addition to what AJay wrote could you be loading any DLLs that snag the resources by calling AfxSetResourceHandle or by not using AFX_MANAGE_STATE? Also, if your dialog code is being called from another thread (like another thread is calling back into the GUI thread code) that could be the problem (similar to what Ajay is suggesting). Tom "Neel" <urneel(a)gmail.com> wrote in message news:3eacb113-901a-4c28-8c56-c35c0b933720(a)e25g2000prg.googlegroups.com... Hi Tom thanking you for post... here is my dialog code.. ///////////////////////////////////////////////////////////////////////////// // CDeleteJed dialog CDeleteJed::CDeleteJed(CWnd* pParent /*=NULL*/) : CDialog(CDeleteJed::IDD, pParent) { //{{AFX_DATA_INIT(CDeleteJed) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT m_bDelete = 0; } void CDeleteJed::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDeleteJed) // NOTE: the ClassWizard will add DDX and DDV calls here //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CDeleteJed, CDialog) //{{AFX_MSG_MAP(CDeleteJed) ON_WM_WINDOWPOSCHANGED() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDeleteJed message handlers BOOL CDeleteJed::OnInitDialog() { CDialog::OnInitDialog(); CListCtrl *pList=(CListCtrl *)GetDlgItem(IDC_JED_LIST); pList->SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES ); DrawCol(); AddJedList(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } CDeleteJed d(this); goes into constructor and also oninit inturn DrawCol(); AddJedList(); successfully while d.DoModal(); it goes into windows core files and crashes as u know. FYI IDD code is correct from resource.h ..... any comments Regds Neel On Jan 23, 7:24 pm, "Tom Serface" <tom.nos...(a)camaswood.com> wrote: > Hi Neel, > > Could be something wrong in your dialog code. Could you post the start up > code for CDeleteJed? Is it just a small dialog. > > Also, check to make sure you didn't load a different set of resources from > a > resource DLL that perhaps has a different ID number of dialog in the same > place as this one in your original code. > > One more thought, and it's just a guess, but are you trying to close the > dialog automatically by pumping a message to it. Maybe the message is > getting processed before the dialog is done opening. That's not likely the > case, but ... > > Tom > > "Neel" <urn...(a)gmail.com> wrote in message > > news:3a6924b6-7ade-42ec-9019-12bc5e3a11f6(a)1g2000hsl.googlegroups.com... > > > > > Hi freinds, > > > please help on debug assert error while using domodal(). > > > CDeleteJed d(this); > > d.DoModal(); > > > when i debug i found assert as followed > > > => > > > VERIFY(RunModalLoop(dwFlags) == m_nModalResult); > > > => > > > ASSERT(ContinueModal()); > > // pump message, but quit on WM_QUIT > > if (!AfxPumpMessage()) { > > AfxPostQuitMessage(0); > > return -1; > > > } > > > => > > > BOOL AFXAPI AfxPumpMessage() > > { > > CWinThread *pThread = AfxGetThread(); > > if( pThread ) > > return pThread->PumpMessage(); > > else > > return AfxInternalPumpMessage(); > > > } > > > => > > debug assertion failed . please help > > > Thanks in adv. > > Neel- Hide quoted text - > > - Show quoted text -
From: Neel on 28 Jan 2008 05:04 Yes Dialog is been created in other thread and i am trying to load same dialog in dll code. thanks Neel On Jan 26, 4:42 am, "Tom Serface" <tom.nos...(a)camaswood.com> wrote: > In addition to what AJay wrote could you be loading any DLLs that snag the > resources by calling AfxSetResourceHandle or by not using AFX_MANAGE_STATE? > > Also, if your dialog code is being called from another thread (like another > thread is calling back into the GUI thread code) that could be the problem > (similar to what Ajay is suggesting). > > Tom > > "Neel" <urn...(a)gmail.com> wrote in message > > news:3eacb113-901a-4c28-8c56-c35c0b933720(a)e25g2000prg.googlegroups.com... > Hi Tom thanking you for post... > > here is my dialog code.. > > ///////////////////////////////////////////////////////////////////////////// > // CDeleteJed dialog > > CDeleteJed::CDeleteJed(CWnd* pParent /*=NULL*/) > : CDialog(CDeleteJed::IDD, pParent) > { > //{{AFX_DATA_INIT(CDeleteJed) > // NOTE: the ClassWizard will add member initialization here > //}}AFX_DATA_INIT > > m_bDelete = 0; > > } > > void CDeleteJed::DoDataExchange(CDataExchange* pDX) > { > CDialog::DoDataExchange(pDX); > //{{AFX_DATA_MAP(CDeleteJed) > // NOTE: the ClassWizard will add DDX and DDV calls here > //}}AFX_DATA_MAP > > } > > BEGIN_MESSAGE_MAP(CDeleteJed, CDialog) > //{{AFX_MSG_MAP(CDeleteJed) > ON_WM_WINDOWPOSCHANGED() > //}}AFX_MSG_MAP > END_MESSAGE_MAP() > > ///////////////////////////////////////////////////////////////////////////// > // CDeleteJed message handlers > > BOOL CDeleteJed::OnInitDialog() > { > CDialog::OnInitDialog(); > > CListCtrl *pList=(CListCtrl *)GetDlgItem(IDC_JED_LIST); > pList->SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES ); > > DrawCol(); > > AddJedList(); > > return TRUE; // return TRUE unless you set the focus to a control > // EXCEPTION: OCX Property Pages should return FALSE > > } > > CDeleteJed d(this); goes into constructor and also oninit inturn > DrawCol(); AddJedList(); successfully > while d.DoModal(); it goes into windows core files and > crashes as u know. > > FYI IDD code is correct from resource.h ..... > > any comments > > Regds > Neel > > On Jan 23, 7:24 pm, "Tom Serface" <tom.nos...(a)camaswood.com> wrote: > > > > > Hi Neel, > > > Could be something wrong in your dialog code. Could you post the start up > > code for CDeleteJed? Is it just a small dialog. > > > Also, check to make sure you didn't load a different set of resources from > > a > > resource DLL that perhaps has a different ID number of dialog in the same > > place as this one in your original code. > > > One more thought, and it's just a guess, but are you trying to close the > > dialog automatically by pumping a message to it. Maybe the message is > > getting processed before the dialog is done opening. That's not likely the > > case, but ... > > > Tom > > > "Neel" <urn...(a)gmail.com> wrote in message > > >news:3a6924b6-7ade-42ec-9019-12bc5e3a11f6(a)1g2000hsl.googlegroups.com... > > > > Hi freinds, > > > > please help on debug assert error while using domodal(). > > > > CDeleteJed d(this); > > > d.DoModal(); > > > > when i debug i found assert as followed > > > > => > > > > VERIFY(RunModalLoop(dwFlags) == m_nModalResult); > > > > => > > > > ASSERT(ContinueModal()); > > > // pump message, but quit on WM_QUIT > > > if (!AfxPumpMessage()) { > > > AfxPostQuitMessage(0); > > > return -1; > > > > } > > > > => > > > > BOOL AFXAPI AfxPumpMessage() > > > { > > > CWinThread *pThread = AfxGetThread(); > > > if( pThread ) > > > return pThread->PumpMessage(); > > > else > > > return AfxInternalPumpMessage(); > > > > } > > > > => > > > debug assertion failed . please help > > > > Thanks in adv. > > > Neel- Hide quoted text - > > > - Show quoted text -- Hide quoted text - > > - Show quoted text -
From: Neel on 28 Jan 2008 05:09 when i opt for RETRY message Unhandled exception at 0x1b97d783 (mfc71d.dll) in graf.exe: User breakpoint. occurs and stops at the code (appcore.cpp) shown below #ifdef _DEBUG void CWinApp::AssertValid() const { CWinThread::AssertValid(); ASSERT(afxCurrentWinApp == this); ASSERT(afxCurrentInstanceHandle == m_hInstance); // CRASHES HERE HERE if (AfxGetThread() != (CWinThread*)this) return; // only do subset if called from different thread if (m_pDocManager != NULL) ASSERT_VALID(m_pDocManager); } if i select retry On Jan 28, 3:04 pm, Neel <urn...(a)gmail.com> wrote: > Yes Dialog is been created in other thread and i am trying to load > same dialog in dll code. > > thanks > Neel > > On Jan 26, 4:42 am, "Tom Serface" <tom.nos...(a)camaswood.com> wrote: > > > > > In addition to what AJay wrote could you be loading any DLLs that snag the > > resources by calling AfxSetResourceHandle or by not using AFX_MANAGE_STATE? > > > Also, if your dialog code is being called from another thread (like another > > thread is calling back into the GUI thread code) that could be the problem > > (similar to what Ajay is suggesting). > > > Tom > > > "Neel" <urn...(a)gmail.com> wrote in message > > >news:3eacb113-901a-4c28-8c56-c35c0b933720(a)e25g2000prg.googlegroups.com... > > Hi Tom thanking you for post... > > > here is my dialog code.. > > > ///////////////////////////////////////////////////////////////////////////// > > // CDeleteJed dialog > > > CDeleteJed::CDeleteJed(CWnd* pParent /*=NULL*/) > > : CDialog(CDeleteJed::IDD, pParent) > > { > > //{{AFX_DATA_INIT(CDeleteJed) > > // NOTE: the ClassWizard will add member initialization here > > //}}AFX_DATA_INIT > > > m_bDelete = 0; > > > } > > > void CDeleteJed::DoDataExchange(CDataExchange* pDX) > > { > > CDialog::DoDataExchange(pDX); > > //{{AFX_DATA_MAP(CDeleteJed) > > // NOTE: the ClassWizard will add DDX and DDV calls here > > //}}AFX_DATA_MAP > > > } > > > BEGIN_MESSAGE_MAP(CDeleteJed, CDialog) > > //{{AFX_MSG_MAP(CDeleteJed) > > ON_WM_WINDOWPOSCHANGED() > > //}}AFX_MSG_MAP > > END_MESSAGE_MAP() > > > ///////////////////////////////////////////////////////////////////////////// > > // CDeleteJed message handlers > > > BOOL CDeleteJed::OnInitDialog() > > { > > CDialog::OnInitDialog(); > > > CListCtrl *pList=(CListCtrl *)GetDlgItem(IDC_JED_LIST); > > pList->SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES ); > > > DrawCol(); > > > AddJedList(); > > > return TRUE; // return TRUE unless you set the focus to a control > > // EXCEPTION: OCX Property Pages should return FALSE > > > } > > > CDeleteJed d(this); goes into constructor and also oninit inturn > > DrawCol(); AddJedList(); successfully > > while d.DoModal(); it goes into windows core files and > > crashes as u know. > > > FYI IDD code is correct from resource.h ..... > > > any comments > > > Regds > > Neel > > > On Jan 23, 7:24 pm, "Tom Serface" <tom.nos...(a)camaswood.com> wrote: > > > > Hi Neel, > > > > Could be something wrong in your dialog code. Could you post the start up > > > code for CDeleteJed? Is it just a small dialog. > > > > Also, check to make sure you didn't load a different set of resources from > > > a > > > resource DLL that perhaps has a different ID number of dialog in the same > > > place as this one in your original code. > > > > One more thought, and it's just a guess, but are you trying to close the > > > dialog automatically by pumping a message to it. Maybe the message is > > > getting processed before the dialog is done opening. That's not likely the > > > case, but ... > > > > Tom > > > > "Neel" <urn...(a)gmail.com> wrote in message > > > >news:3a6924b6-7ade-42ec-9019-12bc5e3a11f6(a)1g2000hsl.googlegroups.com... > > > > > Hi freinds, > > > > > please help on debug assert error while using domodal(). > > > > > CDeleteJed d(this); > > > > d.DoModal(); > > > > > when i debug i found assert as followed > > > > > => > > > > > VERIFY(RunModalLoop(dwFlags) == m_nModalResult); > > > > > => > > > > > ASSERT(ContinueModal()); > > > > // pump message, but quit on WM_QUIT > > > > if (!AfxPumpMessage()) { > > > > AfxPostQuitMessage(0); > > > > return -1; > > > > > } > > > > > => > > > > > BOOL AFXAPI AfxPumpMessage() > > > > { > > > > CWinThread *pThread = AfxGetThread(); > > > > if( pThread ) > > > > return pThread->PumpMessage(); > > > > else > > > > return AfxInternalPumpMessage(); > > > > > } > > > > > => > > > > debug assertion failed . please help > > > > > Thanks in adv. > > > > Neel- Hide quoted text - > > > > - Show quoted text -- Hide quoted text - > > > - Show quoted text -- Hide quoted text - > > - Show quoted text -
From: David Wilkinson on 28 Jan 2008 05:15
Neel wrote: > Yes Dialog is been created in other thread and i am trying to load > same dialog in dll code. Neel: It is always a bad idea to have GUI components in any secondary thread. I would advise you to change your design. -- David Wilkinson Visual C++ MVP |