QFileDialog::getOpenFileName unhandled Exception

Alles rund um die Programmierung mit Qt
Antworten
lespaul
Beiträge: 87
Registriert: 11. August 2011 10:07

QFileDialog::getOpenFileName unhandled Exception

Beitrag 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
Zuletzt geändert von lespaul am 27. Februar 2012 14:46, insgesamt 2-mal geändert.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: QFileDialog::getOpenFileName unhandled Exception

Beitrag 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?
lespaul
Beiträge: 87
Registriert: 11. August 2011 10:07

Re: QFileDialog::getOpenFileName unhandled Exception

Beitrag von lespaul »

Nachdem ich das Projekt neu erzeugt habe, geht es nun wieder. (Vorerst..)

Ich danke!
Gruß LesPaul
lespaul
Beiträge: 87
Registriert: 11. August 2011 10:07

Re: QFileDialog::getOpenFileName unhandled Exception

Beitrag 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

Code: Alles auswählen

class MyClass : public 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
lespaul
Beiträge: 87
Registriert: 11. August 2011 10:07

Re: QFileDialog::getOpenFileName unhandled Exception

Beitrag von lespaul »

Und wenn ich this benutze ist es zudem auch fehlerhaft: Bild
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QFileDialog::getOpenFileName unhandled Exception

Beitrag von Christian81 »

Wie wäre es endlich mal mit genug Sourcecode (== minimales kompilierbares Beispiel) damit wir sehen was Du genau machst?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
lespaul
Beiträge: 87
Registriert: 11. August 2011 10:07

Re: QFileDialog::getOpenFileName unhandled Exception

Beitrag 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
Antworten