Seite 1 von 1

[solved] Einfache Ausgaben auf der Console!?

Verfasst: 10. Dezember 2009 16:48
von odenter
Also ich habe das SDK "Qt SDK 2009.05" installiert, unter Windows. Ich benutze den Qt-Creator um ein QT4 Consolen-Projekt zu erzeugen.

Aber ich bekomme ums verrecken nicht "Hallo, Welt" auf die Console geschrieben.
Meine *.pro Datei scheint auch korrekt zu sein.

Code: Alles auswählen

#-------------------------------------------------
#
# Project created by QtCreator 2009-12-10T16:42:22
#
#-------------------------------------------------

QT       -= gui

TARGET = qtConsoleNeu
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp
Kann mir jemand sagen wie ich Text auf der Console mit Qt unter Windows ausgeben kann?

Ich finde auch nichts brauchbares in der Hilfe, möglicherweise die falschen Suchbegriffe.

Aber ein

Code: Alles auswählen

std::cout << "lala" << std:.endl;
macht mal einfach so gar nüx..

Verfasst: 10. Dezember 2009 17:00
von Hulk2442
Startes du das Programm vom creator aus dann musst du den Debugger verwenden.

Startest du es über die Konsole das verwende folgendes

Code: Alles auswählen

#include <iostream>
// sowie
cout << qPrintable("Hallo Welt") << endl;

Verfasst: 10. Dezember 2009 18:02
von odenter
Also im Debugger gehts, wenn ich dann unter Ausgabe gucke.
Allerdings gibts nen error, wenn ich folgendes übersetzen will.

Code: Alles auswählen

#include <iostream>

int main(int argc, char *argv[]) {
    QCoreApplication a(argc, argv);
    std::cout << "hallo, welt!" << std::endl;
    std::cout << qPrintable("Hallo Welt") << std::endl;
    return a.exec();
}
und zwar

Code: Alles auswählen

C:/_daten/temp/_coding/qt/console/main.cpp:33: error: request for member 'toLocal8Bit' in '("Hallo Welt")', which is of non-class type 'const char [11]'

Verfasst: 10. Dezember 2009 18:24
von franzf
odenter hat geschrieben:Also im Debugger gehts, wenn ich dann unter Ausgabe gucke.
Allerdings gibts nen error, wenn ich folgendes übersetzen will.
Dann schau mal in der Doku nach qPrintable und du wirst feststellen, dass der Code Quatsch ist ;)

Verfasst: 10. Dezember 2009 19:33
von odenter
Also die Doku sagt das es ein const char* zurück gibt.
Starte ich mein Programm an der Console gibt es trotzdem keine Ausgabe... Hab sogar nen eigenen MsgHandler installiert um zu gucken was passiert und da mit "printf" versucht den Text auszugeben, geht nicht.

Selbst mit nem QTextStream s(stdout) kommt nichts an der Console an.

Kann man überhaupt Textausgaben an der Console machen, die man sieht wenn man das Binary startet?

EDIT:
Starte ich das Programm aus der IDE heraus als "ausführen", dann geht ein Consolen Fenster auf und meine Ausgaben werden ausgegeben. :?

Verfasst: 11. Dezember 2009 10:28
von RHBaum
wahrscheinlich weil er keine verbindung zu der console hat ...
mit welchen subsystem erstellst du denn die exe ???

Ciao ...

Verfasst: 11. Dezember 2009 15:11
von drizzt
pro-Datei:

CONFIG += console

und:

qDebug() << "Hallo Welt!";


reicht auch :)

Verfasst: 11. Dezember 2009 15:22
von RHBaum
CONFIG += console
ja, reichen sollte es eigentlich :-)

und eigentlich sollte sein Prog auch was auf der console rausbringen ...
Kann man überhaupt Textausgaben an der Console machen, die man sieht wenn man das Binary startet?
iss eigentlich sinn einer consolenanwendung ^^, mehr oder weniger.
std::cout << "lala" << std::endl;
sollte dir bei anbindung an die console definitiv was rausbringen.

wie startest du dein Program ? aus der ide ?
oder aus ner console raus ?

Ciao ....

Verfasst: 11. Dezember 2009 16:59
von odenter
RHBaum hat geschrieben:
CONFIG += console
ja, reichen sollte es eigentlich :-)

und eigentlich sollte sein Prog auch was auf der console rausbringen ...
Kann man überhaupt Textausgaben an der Console machen, die man sieht wenn man das Binary startet?
iss eigentlich sinn einer consolenanwendung ^^, mehr oder weniger.
std::cout << "lala" << std::endl;
sollte dir bei anbindung an die console definitiv was rausbringen.

wie startest du dein Program ? aus der ide ?
oder aus ner console raus ?

Ciao ....
- Aus der IDE --> geht
- Von der Console --> keine Ausgabe

Verfasst: 14. Dezember 2009 09:03
von drizzt
was passiert denn, wenn du aus der console startest?

Verfasst: 16. Dezember 2009 19:37
von odenter
drizzt hat geschrieben:was passiert denn, wenn du aus der console startest?
Das Programm wird gestartet (sehe ich im Taskmanager) und beendet sich wieder. Danach kann ich an der Console z.B. nochmal starten oder sonst was machen.
Sehr seltsam irgendwie.

Verfasst: 17. Dezember 2009 07:41
von drizzt
ohne irgendeine fehlermeldung?

Verfasst: 18. Dezember 2009 11:28
von odenter
drizzt hat geschrieben:ohne irgendeine fehlermeldung?
Ja

Verfasst: 15. Januar 2010 14:55
von odenter
So ich hatte mal wieder etwas Langeweile und hab nochmal nahc dem Problem geguckt. Fiese Nummer.

Wenn ich unter meinem Windows 7 die Konsole als Administrator starte, und dann mein, als Benutzer erzeugtes Binary starte, dann kommt auch eine Fehlermeldung. *tada*

Starte ich hingegen das vom Benutzer erzeugte Binary als Benutzer, passiert mal gar nichts. (Bisher von mir geschildertes Verhalten)

Die Fehlermeldung die kam, war letztlich auch zu erwarten. Es wurden die *.dlls (QtCore4.dll etc.) nicht gefunden.

Kopiere ich nun die *.dlls aus dem Ordner "..\qt\bin\" zur *.exe geht es immer noch nicht!
Es geht erst, wenn ich die *.dlls aus dem Ordner "..\qt\qt\bin\" nehme.

Also Problem gelöst, Wochenende kann kommen. :)