Fehler beim Auslesen der CListCtrl

Ravebaby

Erfahrenes Mitglied
Hallo.
Ich lese in 2 verschiedenen Methoden derselben Klasse (von CView abgeleitete Klasse) eine CListCtrl aus.
Bei der CListCtrl handelt es sich um eine member - Variable.
Problem ist, dass es im 1. Fal klappt, im 2.Fall kommt die Fehlermeldung: "Unhandled exception at 0x00417c08 in FileExplorer.exe: 0xC0000005: Access violation reading location 0xfeeefede."
Und ich habe absolut keine Ahnung, warum.
Der Code ist absolut identisch!
Ich habe mir die Speicheradresse und Größe des m_listCtrl im 1. und im 2. Fall ausgeben lassen -> sie sind komplett identisch.
Hier der Code im 1. Fall:
Code:
for (int i = 0; i < m_listCtrl.GetItemCount(); i++){
		CFileItem *fileItem;
		DWORD_PTR dword = m_listCtrl.GetItemData(i);
		fileItem = (CFileItem*)dword;
		TRACE("%d fileitem %d \n", fileItem, i);
		CString name = fileItem->GetName();
}
Code im 2. Fall:
Code:
	int items = m_listCtrl.GetItemCount();
	TRACE("%d unten %d \n", items, m_listCtrl);

        CFileItem *actFileItem;
	DWORD_PTR actDword = m_listCtrl.GetItemData(elementAt);
	actFileItem = (CFileItem*)actDword;
	TRACE("%d fileitem %d \n", actFileItem, elementAt);
	CString filename = actFileItem->GetName();
Ich glaube, dass der Fehler in der Zeile "CString filename = actFileItem->GetName();" auftritt. Zumindest erscheint die Ausgabe des Fehlers nicht mehr, wenn ich die Zeile auskommentiere.
Die Variable elementAt hat immer einen legitimen Wert, daran kann es auch nicht liegen.

Auch habe ich mir die Adresse des von der CListCtrl zurückgelieferten Zeigers auf ein CFileItem - Objekt ausgeben lassen - sie waren in beiden Fällen identisch.

Danke für jede Hilfe
 
0xfeeefede (bzw. 0xfeeefeee) ist ein guter Hinweis darauf, dass irgendwas da schon deleted wurde, und du (oder eine der Klassen die du benutzt) darauf zugreifen will.
 
aber das kann echt nicht sein, ich delete ja dazwischen nicht und alle Variablen haben einen zulässigen Wert und denselben Wert, wie im ersten Fall.
Es ist echt verfixt. Ich probier schon Tage und Stunden daran rum.
Die Werte sind echt absolut identisch, bis ich versuche, den Namen auszulesen.
 
Zurück