PNG-Bilder anzeigen ohne VisualStudio?

Alles rund um die Programmierung mit Qt
grid
Beiträge: 23
Registriert: 7. September 2008 18:28

PNG-Bilder anzeigen ohne VisualStudio?

Beitrag von grid »

Hallo.

Habe in VS2005 eine Anwendung mit Hilfe von Qt geschrieben. Ich zeichne darin viele PNG-Bilder.

Seltsam ist:
Wenn ich die Anwendung aus VS2005 heraus starte funktioniert alles.

Wenn ich jedoch die EXE einzelnd ausführe stürtzt mein Programm sofort ab. Nehme ich jedoch die Bilder aus dem Code läuft meine Anwenung.

Habe alle wichtigen DLL's in das Anwendungsverzeichnis gepackt... von Qt und VS2005.

Ich stehe gerade vor einem riesen Rätzel und weis nicht weiter... vielleicht hatte jemand hier schonmal ein ähnliches Problem?

beste Grüße
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Ich stehe gerade vor einem riesen Rätzel und weis nicht weiter...
wir hier auch ohne src
grid
Beiträge: 23
Registriert: 7. September 2008 18:28

Beitrag von grid »

AuE hat geschrieben:
Ich stehe gerade vor einem riesen Rätzel und weis nicht weiter...
wir hier auch ohne src
Hallo AuE...
...was wäre denn da an src interessant?

Also ich habe folgende DLL's im Pfad:
  • mfc80.dll
    msvcm80.dll
    msvcp80.dll
    msvcr80.dll
    QtCore4.dll
    QtGui4.dll
    QtNetwork4.dll
    QtXml4.dll
Und in VS2005 habe ich folgende Lib's verlinkt:
  • qtmain.lib
    QtGui4.lib
    QtCore4.lib
    QtXml4.lib
    QtNetwork4.lib
Ein Bild erstelle ich mit:

Code: Alles auswählen

img = QImage("./images/XY.png");
Die Pfadstruktur stimmt auch und der CurrentPath ist ebenfalls richtig.

Finds halt seltsam das die Anwendung 1A mit Bildern aus VS2005 heraus gestartet funktioniert... aber sofort abstürzt wenn ich sie mit nem Doppelklick öffne?

Hoffe jemand hat eine Idee...
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

sieht schon mal gut aus! Wenns es gar net anzeigt hätte ich gesagt mach mal ein clean und nen new-built aber so..... gibt es denn gar keine fehlermeldung?

könntest mal folgendes versuchen:

Code: Alles auswählen

QImage img;
boool bres = img.load("");
dann könntest anhand von bres überprüfen obs am Laden liegt.... was ich aber nicht glaube da das nicht dein problem beschreibt!
Zuletzt geändert von AuE am 12. Mai 2009 11:13, insgesamt 1-mal geändert.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Hat denn VS2005 keinen Debugger integriert?
Per Debugger kannst du die einzelnen Funktionsaufrufe bis zum Crash verfolgen. Insbesondere den Aufruf, der den Crash verursacht.
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Ich hattte es so verstanden das es im Debugger läuft und aus dem Explorer raus eben net!?


BTW: Hast du en release gebaut??
grid
Beiträge: 23
Registriert: 7. September 2008 18:28

Beitrag von grid »

AuE hat geschrieben:Ich hattte es so verstanden das es im Debugger läuft und aus dem Explorer raus eben net!?
Genau so ist es.

Aus dem Explorer raus läuft die Anwendung nicht... aus Visual Studio heraus jedoch prima.

Hm... jetzt hab ich noch eine seltsame Entdeckung gemacht:
Wenn ich den Ordner "images", in dem ja die Bilder liegen, umbenenne und die Anwendung dann aus dem Explorer heraus starte läuft sie... jedoch werden hier logischerweise keine Bilder angezeigt ;)


EDIT:
Ja, hab ein Release gebaut.
Zuletzt geändert von grid am 12. Mai 2009 12:05, insgesamt 1-mal geändert.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Sry, hab keinen VS2005 (Microsoft hat einfach noch keine Linux-Version herausgebracht :P) drum weiß ich nicht dass "startet aus VS2005" heißt, dass es im Debugger läuft...

Ansonsten versuch es mal aus nem Terminal. Das gibt eigentlich immer sinnvolle Meldungen.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

png ist ein Image-Plugin und muss demnach separat mit ausgeliefert werden -> Foren-Suche würde ich sagen.
Außerdem http://doc.trolltech.com/4.5/plugins-howto.html
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
grid
Beiträge: 23
Registriert: 7. September 2008 18:28

Beitrag von grid »

Christian81 hat geschrieben:png ist ein Image-Plugin und muss demnach separat mit ausgeliefert werden -> Foren-Suche würde ich sagen.
Außerdem http://doc.trolltech.com/4.5/plugins-howto.html
Hallo Christian,
bist du dir sicher das PNG ein Plugin ist? Ich finde nur GIF, JPEG, TIFF, MNG, ICO, SVG.

Welches Bildformat ist denn in Qt standardmäßig an Board?


EDIT: Falls es ein Plugin sein sollte... müsste ich das nicht auch in VS2005 einrichten?
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

soweit ich weiss ist doch png und bmp standardmäßig mit bei, oder?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

AuE hat geschrieben:soweit ich weiss ist doch png und bmp standardmäßig mit bei, oder?
Jepp... :(
Dann tippe ich auf falschen relativen Pfad. Besser einen absoluten nehmen (QApllication::applicationDirPath() ist da hilfreich)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
grid
Beiträge: 23
Registriert: 7. September 2008 18:28

Beitrag von grid »

Christian81 hat geschrieben:
AuE hat geschrieben:soweit ich weiss ist doch png und bmp standardmäßig mit bei, oder?
Jepp... :(
Dann tippe ich auf falschen relativen Pfad. Besser einen absoluten nehmen (QApllication::applicationDirPath() ist da hilfreich)
Leider war das auch mein erster Gedanke.

Code: Alles auswählen

QCoreApplication::applicationDirPath()+"/images/XY.png"
...brachte auch nix :(

Der Pfad stimmt leider, sonst würde das:
Wenn ich den Ordner "images", in dem ja die Bilder liegen, umbenenne und die Anwendung dann aus dem Explorer heraus starte läuft sie... jedoch werden hier logischerweise keine Bilder angezeigt Wink
keinen Sinn machen.

Ich denke es muss an ner DLL liegen. Kanns mir sonst einfach nicht erklären...
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Hast die Anwendung schon aus der Console raus gestartet u da evtl was entdecken können?
grid
Beiträge: 23
Registriert: 7. September 2008 18:28

Beitrag von grid »

Dank für eure schnellen Bemühungen :wink:
AuE hat geschrieben:Hast die Anwendung schon aus der Console raus gestartet u da evtl was entdecken können?
Ja hab ich... leider nix neues. Es ist wirklich wie verhext... :(

Jetzt kommt bei jedem 2. mal starten die chance mit dem Just-In-Time-Debugger was zu unternehmen.

Anscheinend irgend ein Fehler in der ntdll.dll und oder msvcr80.dll.
Antworten