Bonjour,
j'ai une application mfc de type explorateur window.
J'ai ajout� les deux m�thodes suivantes a Childfrm.cpp
J'ai voulu maintenant acc�der a CLeftView afin d'ajouter des �l�ments dans le tree a partir de CProjectDoc.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 CProjectView* CChildFrame::GetRightPane() { CWnd* pWnd = m_wndSplitter.GetPane(0, 1); CProjectView* pView = DYNAMIC_DOWNCAST(CProjectViewView, pWnd); return pView } CLeftView* CChildFrame::GetLeftPane() { CWnd* pWnd = m_wndSplitter.GetPane(0, 0); CLeftView *pTree = DYNAMIC_DOWNCAST(CLeftView, pWnd); return pTree; }
Voil� ce que je les ai �cri:
Le pb se pose � partir de la deuxi�me ligne et le message d'une violation d'acc�es s'apparait:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 CChildFrame *pvi=(CChildFrame *)AfxGetMainWnd()->GetActiveWindow(); CLeftView * left=pvi->GetLeftPane(); CTreeCtrl & ptree=left->GetTreeCtrl(); ptree.InsertItem("aaaa",0,0);
et l'ex�cutable s'arr�te dans cette fonction:
Il s'arr�te dans la ligne de if qui se trouve dans le fichier objcore.cpp
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 if (!AfxIsValidAddress(pOb, pOb->GetRuntimeClass()->m_nObjectSize, FALSE)) { TRACE(traceAppMsg, 0, "ASSERT_VALID fails with illegal pointer.\n"); if (AfxAssertFailedLine(lpszFileName, nLine)) AfxDebugBreak(); return; // quick escape } pOb->AssertValid();
et voil� le message d'erreur exactement:
Merci pour vos aidesException de premi�re chance � 0x787b9fdc (mfc90d.dll) dans Project.exe*: 0xC0000005: Violation d'acc�s lors de la lecture de l'emplacement 0xcdcdcd01.
Partager