[gelöst] Linker-Error bei Q_INIT_RESOURCE

Alles rund um die Programmierung mit Qt
Antworten
Nemesis
Beiträge: 20
Registriert: 19. Oktober 2007 09:51
Wohnort: Erlangen

[gelöst] Linker-Error bei Q_INIT_RESOURCE

Beitrag von Nemesis »

Hallo!
Bin Anfängerin bei der (Qt-)Programmierung und will eine .ui Datei in ein QFile laden und öffnen. Habe eine .qrc Datei erstellt und will die mittels Q_INIT_RESOURCE einbinden. Beim builden bekomme ich dann folgende Fehlermeldung:

QtUiToolsd.lib(properties.obj): fatal error LNK1202 ".....\vc60.pdb" is missing debugging information for referencing module


Damit kann ich leider nicht so wirklich was anfangen :(
Vielleicht kann mir da ja jemand weiterhelfen?
Zuletzt geändert von Nemesis am 12. Februar 2008 09:21, insgesamt 2-mal geändert.
Korgen
Beiträge: 42
Registriert: 28. März 2006 16:37

Beitrag von Korgen »

Q_INIT_RESOURCE wird nur bei statischen Librarys benötigt. Ist das bei dir der Fall?


Die UI datei hast du deinem .qrc File hinzugefügt und versuchst sie nun über QFile file(":/myuifile.ui") zu öffnen?

Außerdem versuch mal ein "Clean Solution" oder "Projektmappe bereinigen" und dann einen neuen Build. Besteht das Problem dann weiterhin?
Nemesis
Beiträge: 20
Registriert: 19. Oktober 2007 09:51
Wohnort: Erlangen

Beitrag von Nemesis »

Die UI datei hast du deinem .qrc File hinzugefügt und versuchst sie nun über QFile file(":/myuifile.ui") zu öffnen?
Genau das ist mein Ziel :)
Ähm, die erste Frage kann ich leider nicht beantworten, verstehe sie nicht so richtig :oops:
Ich dachte ich brauche das generell wenn ich eine .ui-Datei verwenden will.
Korgen
Beiträge: 42
Registriert: 28. März 2006 16:37

Beitrag von Korgen »

ok, wenn du die Frage nicht verstehst, dann geh ich davon aus, dass du eine "normale" exe Datei erstellen willst und keine .lib oder .dll oder sowas in der Richtung.
Dann bracuhst du das INIT_RESOURCE nicht:

Zitat Qt Hilfe:

"The Q_INIT_RESOURCE() macro is necessary on some platforms for resources stored in a static library."

Was mich allerdings interessieren würde, warum du eine ui Datei in ein .qrc packst und dann via QFile öffnen willst (das hört sich nicht nach Qt Neuling an ;) )?
Nemesis
Beiträge: 20
Registriert: 19. Oktober 2007 09:51
Wohnort: Erlangen

Beitrag von Nemesis »

Ja, ich will nur eine exe erstellen.
Was mich allerdings interessieren würde, warum du eine ui Datei in ein .qrc packst und dann via QFile öffnen willst (das hört sich nicht nach Qt Neuling an )?
Das mache ich aus dem Grund, aus dem ich auch das Makro verwendet habe: Ich suche mir in Dokus was zusammen, von dem ich denke dass ich es brauche. Naja, und das hab ich bei den Beispielen gefunden, die bei dem Qt dabei sind.
Also eigentlich will ich einfach nur den Inhalt einer .ui Datei, der sich zur Laufzeit ändern könnte, in meinem Dialogfenster anzeigen.

Schon mal besten Dank für die schnelle Hilfe. Werde mir dann mal einen anderen Weg dafür überlegen :)
Korgen
Beiträge: 42
Registriert: 28. März 2006 16:37

Beitrag von Korgen »

wenn du die .ui Datei in die .qrc Datei packst, dann wird der Inhalt der .ui Datei beim Erstellen der .exe hart in dein Projekt kompiliert. Wenn du dann nachträglich was an der .ui änderst, merkt dein Programm davon nichts, da es nur auf die Resource zugreift, die in die .exe kompiliert ist.

Zu deinem Problem:
lade die Datei nicht aus der Resource sondern direkt vom Dateisystem ( QFile file( "C:\\myFile.ui" ) ).
.ui Dateien sind, soweit ich weiß, XML Dateien, deshalb solltest du dir QXMLReader und QXMLStreamReader anschauen.

Grüße
Nemesis
Beiträge: 20
Registriert: 19. Oktober 2007 09:51
Wohnort: Erlangen

Beitrag von Nemesis »

Besten Dank, das werde ich dann so machen :)
Nemesis
Beiträge: 20
Registriert: 19. Oktober 2007 09:51
Wohnort: Erlangen

Beitrag von Nemesis »

Habe meinen Code jetzt so umgeändert, dass ich die Datei direkt vom Dateisystem lade. Außerdem benutze ich den QUiLoader:
QFile file("C:\\myform.ui");
QUiLoader loader;
file.open(QIODevice::ReadOnly);
QWidget* myWidget = loader.load(&file);
file.close();
myWidget->show();
Leider bekomme ich immer noch dieselbe Fehlermeldung wie zuvor.
Korgen
Beiträge: 42
Registriert: 28. März 2006 16:37

Beitrag von Korgen »

den Linker Error LNK1202?
Hast du das Projekt wie oben beschrieben mal bereinigt und 'nen komplett neuen Build gestartet?
Nemesis
Beiträge: 20
Registriert: 19. Oktober 2007 09:51
Wohnort: Erlangen

Beitrag von Nemesis »

Ja, hatte ich gemacht.
Aber jetzt habe ich den Fehler umgehen können. Hatte bisher mit dem Studio 6 entwickeln müssen, konnte dann aber jetzt doch das 2005er nehmen, und da habe ich den Fehler nicht mehr :)

Aber trotzdem nochmals besten Dank für die Unterstützung.
Sephral
Beiträge: 201
Registriert: 1. Februar 2006 09:40
Kontaktdaten:

Beitrag von Sephral »

hiho,

die Änderung des UI-Files kannst du mit dem "QFileSystemWatcher" erkennen und dann Dein Fenster aktualisieren.


Ciao,
Sephral
Antworten