Access Violation durch QFileDialog
Verfasst: 23. Mai 2012 09:08
Hallo,
ich benutze für ein Projekt "QFileDialog::getOpenFileNames();" um an eine Liste mit Dateinamen zu kommen. Nachdem ich schon eine ganze Weile (ca. 2 Monate) mit und an diesem Programm gearbeitet habe bekomme ich auf einmal nach kurzer Laufzeit Abstürze:
Meine Test haben ergeben, dass die Abstürze durch QFileDialog verursacht wurden. Deshalb habe ich ein kleines Beispiel erstellt in dem eigentlich nur diese Funktion verwendet wird. Dort wurden dann auch die Parameter weg gelassen, die ich getOpenFileName übergeben kann. Das Projekt befindet sich im Anhang (VS 2010 Solution).
Auch hier kommt es nach einer scheinbar zufälligen Zeitspanne zum Absturz mit der Meldung:
Ob die vorherigen Meldungen auch schon eher ungut sind kann ich leider nicht beurteilen.
Bisher versucht habe ich:
- umstellen von Debug auf Release (hat für eine Tag etwas gebracht, danach war das Problem wieder da)
- Update auf neuste Qt Version(jetzt 4.81 vorher 4.80)
- Testweises anlegen eines QFileDialog-Objekts. Mittels diesem dann getOpenFileName aufgerufen und anschließend das Objekt mit ~pMyFileDialog wieder gelöscht. Hatte auch keinen Erfolg.
- Projekt im Qt-Creator erstellt. Hier ist es dann nicht zu Abstürzen gekommen. Seltsamerweise, war es sogar so, dass auch das VS Programm nicht abstürzte wenn nebenher das mit dem Qt-Creator erstellte Programm lief. Aber ich verbuche das mal unter sehr großem Zufall.
- Projekt auf anderem Rechner schien, zumindest nach kurzer Testphase, stabil zu laufen.
Die Anzeige der Aufrufliste ergibt Folgendes:
Da ich nun recht am Ende meines Lateins bin (bin weder in C++ noch in Qt Profi nur hatte ich bisher mit QFileDialog nie Probleme) würde ich mich über jede Hilfe freuen.
Gruß,
krisztian
ich benutze für ein Projekt "QFileDialog::getOpenFileNames();" um an eine Liste mit Dateinamen zu kommen. Nachdem ich schon eine ganze Weile (ca. 2 Monate) mit und an diesem Programm gearbeitet habe bekomme ich auf einmal nach kurzer Laufzeit Abstürze:
Code: Alles auswählen
Zugriffsverletzung beim Lesen an Position 0xfeeefeeeAuch hier kommt es nach einer scheinbar zufälligen Zeitspanne zum Absturz mit der Meldung:
Code: Alles auswählen
Eine Ausnahme (erste Chance) bei 0x760bb9bc (KernelBase.dll) in OpenFileDialogTest.exe: 0x80010108: Das aufgerufene Objekt wurde von den Clients getrennt.
Eine Ausnahme (erste Chance) bei 0x760bb9bc (KernelBase.dll) in OpenFileDialogTest.exe: 0x80010108: Das aufgerufene Objekt wurde von den Clients getrennt.
Eine Ausnahme (erste Chance) bei 0x760bb9bc (KernelBase.dll) in OpenFileDialogTest.exe: 0x80010108: Das aufgerufene Objekt wurde von den Clients getrennt.
Eine Ausnahme (erste Chance) bei 0x7560c99e in OpenFileDialogTest.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xfeeefeee.
[b]Unbehandelte Ausnahme bei 0x7560c99e in OpenFileDialogTest.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xfeeefeee.[/b]
Bisher versucht habe ich:
- umstellen von Debug auf Release (hat für eine Tag etwas gebracht, danach war das Problem wieder da)
- Update auf neuste Qt Version(jetzt 4.81 vorher 4.80)
- Testweises anlegen eines QFileDialog-Objekts. Mittels diesem dann getOpenFileName aufgerufen und anschließend das Objekt mit ~pMyFileDialog wieder gelöscht. Hatte auch keinen Erfolg.
- Projekt im Qt-Creator erstellt. Hier ist es dann nicht zu Abstürzen gekommen. Seltsamerweise, war es sogar so, dass auch das VS Programm nicht abstürzte wenn nebenher das mit dem Qt-Creator erstellte Programm lief. Aber ich verbuche das mal unter sehr großem Zufall.
- Projekt auf anderem Rechner schien, zumindest nach kurzer Testphase, stabil zu laufen.
Die Anzeige der Aufrufliste ergibt Folgendes:
Code: Alles auswählen
> ole32.dll!7560c99e()
[Unten angegebene Rahmen sind möglicherweise nicht korrekt und/oder fehlen, keine Symbole geladen für ole32.dll]
ole32.dll!7564eb7f()
ole32.dll!7564eb4d()
ole32.dll!7564923c()
ole32.dll!7564b4d0()
ole32.dll!7564eb7f()
ole32.dll!7564eb4d()
ole32.dll!75648d94()
ole32.dll!7564928b()
ole32.dll!75648f82()
ole32.dll!7564eb7f()
ole32.dll!75648ec3()
ole32.dll!7563bac3()
networkitemfactory.dll!FDBackgroundThreadHandler() + 0x21 Bytes
shlwapi.dll!WrapperThreadProc() + 0xd3 Bytes
kernel32.dll!@BaseThreadInitThunk@12() + 0x12 Bytes
ntdll.dll!___RtlUserThreadStart@8() + 0x27 Bytes
ntdll.dll!__RtlUserThreadStart@8() + 0x1b Bytes
Gruß,
krisztian