Wie funktioniert Qt5 redirect qDebug () - Anweisungen, um die Qt Creator 2.6 Konsole
Nach der Suche rund um für einen Grund, dass die qDebug () - Anweisungen funktionieren mit der Qt-standard-message-handler, aber nicht, wenn ich auf meiner eigenen, ich bin attraktiv hier, um zu sehen, ob jemand irgendwelche Erfahrungen mit dem problem.
Dinge, die ich kennen /probiert haben,, die nichts zu tun...
1) CONFIG += console
2) DEFINES -= QT_NO_WARNING_OUTPUT QT_NO_DEBUG_OUTPUT
3) ::fprintf(stderr, "ERROR\n"); ::fflush(stderr);
4) ::fprintf(stdout, "OUTPUT\n"); ::fflush(stdout);
5) std::cerr << "CERROR" << std::endl; std::cerr.flush();
Aber es funktioniert einwandfrei, wenn Sie die eingebauten handler (also er druckt die Nachricht an den QtCreator Konsole)
int main(int argc, char *argv[]) {
//Use my handler
qInstallMessageHandler(MyCustomLogger);
qDebug() << "Not Printed";
//Use standard handler
qInstallMessageHandler(0);
qDebug() << "Correctly Printed";
//Use my handler again
qInstallMessageHandler(MyCustomLogger);
qDebug() << "Not Printed Again...";
}
Den letzten test wurde die Zuweisung selbst eine Konsole mit WinAPI-Befehle, die diese Ergebnisse in das korrekte Verhalten, alle Ausgaben auf stderr und stdout sind sichtbar auf der Konsole, die ich erstellt. Dies ist jedoch nicht das Verhalten, das ich will, ich will in der Lage sein, diese Ausgabe in QtCreator.
Irgendwelche Gedanken auf, wie die standard-message-handler-prints auf den debugger?
Ich habe nicht geschafft, es zu finden, in die Qt-Quellen noch.
Ich muss zugeben, ich habe nie gehört, dass die debug-Kanal vor, ab zu google.
InformationsquelleAutor g.p.daniels | 2013-02-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Frank Osterfeld erwähnt in seinem Kommentar:
Nach dem eintauchen in die QDebug-code und QMessageLogger die ich gefunden habe, meine Antwort. Der handliche WinAPI-Funktion
OutputDebugString
.Nutzung (Geändert von peppe ' s):
InformationsquelleAutor g.p.daniels
Ich kann nicht reproduzieren Sie Ihr Problem: dies funktioniert einwandfrei für mich.
Ah vielleicht auch nicht, wie ich mit einem QApplication eher als eine QCoreApplication so, dass ich eine gui haben, es funktioniert nicht in deinem Beispiel.
Problem gelöst, verwenden Sie OutputDebugString(...) ich füge meine Antwort in 5 Stunden, wenn das system mich lässt...
InformationsquelleAutor peppe