Seite 1 von 1
QFileDialog::getOpenFileName unhandled Exception
Verfasst: 23. Februar 2012 09:03
von lespaul
Hallo Leute,
ich bekomme folgende Fehlermeldung:
Unhandled exception at 0x6507ba95 (QtGuid4.dll) in XMLParser.exe: 0xC0000005: Access violation reading location 0xcdcdcddd.
Der Fehler wird laut Debugger in dieser Zeile geworfen, wo versucht wird, den Dateinamen einzulesen.
Code: Alles auswählen
QString fileName = QFileDialog::getOpenFileName( this,
tr("XML-File"),
"C:\\path",
tr("XML-Files (*.xml)"));
Als nächstes befinde ich mich dann hier im qwidget.h:
Code: Alles auswählen
inline Qt::WindowType QWidget::windowType() const
{ return static_cast<Qt::WindowType>(int(data->window_flags & Qt::WindowType_Mask)); }
Vorher hat es funktioniert, ich habe kaum was verändert.. (erinnere mich net mehr

)
Mfg LesPaul
Re: QFileDialog::getOpenFileName unhandled Exception
Verfasst: 23. Februar 2012 09:35
von franzf
lespaul hat geschrieben:Der Fehler wird laut Debugger in dieser Zeile geworfen, wo versucht wird, den Dateinamen einzulesen.
Code: Alles auswählen
QString fileName = QFileDialog::getOpenFileName( this,
tr("XML-File"),
"C:\\path",
tr("XML-Files (*.xml)"));
Sagt das wirklich der BackTrace?
Etwas mehr Kontext wäre nicht schlecht, am besten ein kompilierbares Minimalbeispiel, das den Fehler produziert.
Als erster "Rateversuch": Dein XMLParser liegt nicht zufällig in einem eigenen Thread?
Re: QFileDialog::getOpenFileName unhandled Exception
Verfasst: 23. Februar 2012 13:23
von lespaul
Nachdem ich das Projekt neu erzeugt habe, geht es nun wieder. (Vorerst..)
Ich danke!
Gruß LesPaul
Re: QFileDialog::getOpenFileName unhandled Exception
Verfasst: 27. Februar 2012 14:59
von lespaul
Ok, nun kenne ich die Ursache:
Ich habe eine Klasse "MyClass" in welchem ich Signale&Slots benutze. Folgerichtig ist auch das MAkro Q_OBJECT gesetzt und MyClass erbt von QWidget
, da ich sonst :
Error: Class contains Q_OBJECT macro but does not inherit from QObject
lese.
Ich habe MyClass nicht von QObject erben lassen, da ich u.a.
Code: Alles auswählen
QMessageBox::critical(this, "MYClass::slot_readXMLFile()", "Could not open *.xml", QMessageBox::Ok);
habe. This wäre dann hier von QWidget abgeleitet.
Auch mein this in
Code: Alles auswählen
QString fileName = QFileDialog::getOpenFileName(this, tr("XML-Datei"), "C:\\path", tr("XML-files(*.xml)"));
ist ja ein MyClass : QWidget.
Wenn ich das QFileDialog unabhängig mache
Code: Alles auswählen
QString fileName = QFileDialog::getOpenFileName(0, tr("XML-Datei"), "C:\\path", tr("XML-files(*.xml)"));
also this= 0 dann gehts gut.
Ich würde gerne verstehen warum mein this = MyClass:QWidget nicht akzeptiert wird?
LesPaul
Re: QFileDialog::getOpenFileName unhandled Exception
Verfasst: 27. Februar 2012 15:07
von lespaul
Und wenn ich this benutze ist es zudem auch fehlerhaft:

Re: QFileDialog::getOpenFileName unhandled Exception
Verfasst: 27. Februar 2012 15:42
von Christian81
Wie wäre es endlich mal mit genug Sourcecode (== minimales kompilierbares Beispiel) damit wir sehen was Du genau machst?
Re: QFileDialog::getOpenFileName unhandled Exception
Verfasst: 29. Februar 2012 09:15
von lespaul
Ein minimales kompilierbares hat problemlos funktioniert.
Es liegt wohl an einer anderen externen DLL, kläre dies grad mit dem Hersteller.. später mehr.
Ich danke!
LesPaul