(MFCO42UD.DLL): 0xC0000005: Access Violation.



  • ich habe einen fertigen MFC projekt bekommen und möchte ein paar änderungen und erweiterungen machen und den code debuggen. aber beim debugen bekomme ich folgende fehlermeldung:
    (MFCO42UD.DLL): 0xC0000005: Access Violation obwohl die dll vorhanden ist.

    ich habe visual c++ 6 mit service pack 5 und habe alle MFC optionen installiert.

    weiss jemand was da schief läuft ?

    danke im voraus

    toz



  • Ich tippe auf einen nicht initialisierten Pointer irgendwo in deinem Programm:

    /*1*/myClass* myObject;        //zeigt ins Daten-Nirvana
    /*2*/myObject->do_something(); //interpretiert irgendwelche Daten als myClass-Objekt
    

    irgendwo zwischen diese beiden Zeilen gehört noch ein "myObject=...;".

    PS: Wenn du von dieser Fehlermeldung aus in den Debugger schaltest, müsstest du eigentlich an Zeile 2 ankommen.



  • CFrameWnd* CDocTemplate::CreateNewFrame(CDocument* pDoc, CFrameWnd* pOther)
    {
    	if (pDoc != NULL)
    		ASSERT_VALID(pDoc);
    	// create a frame wired to the specified document
    
    	ASSERT(m_nIDResource != 0); // must have a resource ID to load from
    	CCreateContext context;
    	context.m_pCurrentFrame = pOther;
    	context.m_pCurrentDoc = pDoc;
    	context.m_pNewViewClass = m_pViewClass;
    	context.m_pNewDocTemplate = this;
    
    	if (m_pFrameClass == NULL)
    	{
    		TRACE0("Error: you must override CDocTemplate::CreateNewFrame.\n");
    		ASSERT(FALSE);
    		return NULL;
    	}
    	CFrameWnd* pFrame = (CFrameWnd*)m_pFrameClass->CreateObject();
    	if (pFrame == NULL)
    	{
    		TRACE1("Warning: Dynamic create of frame %hs failed.\n",
    			m_pFrameClass->m_lpszClassName);
    		return NULL;
    	}
    	ASSERT_KINDOF(CFrameWnd, pFrame);
    
    	if (context.m_pNewViewClass == NULL)
    		TRACE0("Warning: creating frame with no default view.\n");
    
    	// create new from resource
            [b]//hier wurde die exception ausgelöst beim aufruf von LoadFrame()[/b]
    	if (!pFrame->LoadFrame(m_nIDResource,
    			WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE,   // default frame styles
    			NULL, &context))
    	{
    		TRACE0("Warning: CDocTemplate couldn't create a frame.\n");
    		// frame will be deleted in PostNcDestroy cleanup
    		return NULL;
    	}
    
    	// it worked !
    	return pFrame;
    }
    

    pFrame ist ungleich null.
    das einzige was = null ist der variable context.m_pCurrentFrame bzw. pOther(der parameter von der funktion CreateNewFrame)


Anmelden zum Antworten