Debug Assertion Failed!



  • Hallo Jungens und Mädels,

    ich hab mal wieder ein kleines Problem.
    Immer wenn ich debugen will bekomme ich ne Fehlermeldung.

    Debug Assertion Failed!
    ...
    File: occmgr.cpp
    Line: 410

    .........

    wenn ich ihn dann debugen lasse, zeigt er mir den folgenden Quelltext:

    // cleanup
    	if (lpResource != NULL && hResource != NULL)
    	{
    		UnlockResource(hResource);
    		FreeResource(hResource);
    	}
    
    	if(pWndParent->m_pCtrlCont)
    	{
    		COleControlSiteOrWnd *pSiteOrWnd = NULL;
    		POSITION pos = pWndParent->m_pCtrlCont->m_listSitesOrWnds.GetHeadPosition();
    		POSITION posOld = pos;
    		if(pos)
    			pSiteOrWnd = pWndParent->m_pCtrlCont->m_listSitesOrWnds.GetNext(pos);
    
    		for(unsigned i = 0; i < pOccDlgInfo->m_cItems; i++)
    		{
    			ASSERT(!pSiteOrWnd || pSiteOrWnd->m_pSite);
    			if(pSiteOrWnd &&
    				pSiteOrWnd->m_pSite->m_nID == pOccDlgInfo->m_pItemInfo[i].nId)
    			{
    				posOld = pos;
    				pSiteOrWnd = pos ?
    					pWndParent->m_pCtrlCont->m_listSitesOrWnds.GetNext(pos) :
    					NULL;
    			}
    			else
    			{
    				if(pOccDlgInfo->m_pItemInfo[i].nId)
    				{
    					COleControlSiteOrWnd *pTemp =
    						new COleControlSiteOrWnd(
    							::GetDlgItem(pWndParent->GetSafeHwnd(), pOccDlgInfo->m_pItemInfo[i].nId),
    							pOccDlgInfo->m_pItemInfo[i].bAutoRadioButton);
    					ASSERT(pTemp->m_hWnd);
    					if(posOld)
    						pWndParent->m_pCtrlCont->m_listSitesOrWnds.InsertBefore(posOld, pTemp);
    					else
    						pWndParent->m_pCtrlCont->m_listSitesOrWnds.AddTail(pTemp);
    				}
    			}
    		}
    	}
    
    	return bResult;
    }
    

    in der Zeile "ASSERT(pTemp->m_hWnd);" steigt er aus.

    Ich hoffe mir kann jemand von euch helfen.

    thx



  • das bedeutet, dass pTemp->m_hWnd = NULL ist, also vermutlich kein Fenster existiert. 🙂



  • Eine Empfehlung - Geh mal im Call-Stack ein paar Stufen nach oben, bis du zu deinem eigenen Quellcode gelangst. Vermutlich hast du eine MFC-Funktion an der falschen Stelle aufgerufen.



  • das komische ist nur, dass der gleiche Quelltext auf einem anderem rechner mit der geichen .net version ohne fehler ausgeführt wird.
    das gibt mir irgendwie zu denken.



  • 0815noob schrieb:

    das komische ist nur, dass der gleiche Quelltext auf einem anderem rechner mit der geichen .net version ohne fehler ausgeführt wird.
    das gibt mir irgendwie zu denken.

    Debug oder Releasemodus?



  • Debugmodus



  • Benutzt du möglicherweise ein ActiveX-Steuerelement, das auf einem der Rechner nicht installiert ist?

    Ansonsten: CStolls Empfehlung befolgen.



  • jap, das kann gut sein.
    wir arbeiten mit einer richtextctrl.
    da hatten wir schon mal probleme.


Anmelden zum Antworten