Comment Qt5 redirige-t-il les instructions qDebug () vers la console Qt Creator 2.6?
Après la recherche autour pour une raison que qDebug() relevés du bon travail, avec Qt standard du gestionnaire de messages, mais ne parviennent pas quand je change de mon propre, je suis attrayant ici pour voir si quelqu'un a une expérience avec le problème.
Choses que je sais à propos de /avoir essayé, que ne rien faire...
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();
Cependant, il fonctionne correctement lors de l'utilisation de la construction dans le gestionnaire (c'est à dire qu'il imprime le message à la QtCreator console)
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...";
}
Le test le plus récent a été l'allocation de me console à l'aide de WinAPI les commandes de cette résultats dans le bon comportement de toutes les sorties vers stderr et stdout sont visibles sur la console que j'ai créé. Cependant, ce n'est pas le comportement que je veux, je veux pouvoir afficher cette sortie dans QtCreator.
Des idées sur la façon dont le message standard gestionnaire d'impressions pour le débogueur?
Je n'ai pas réussi à le trouver dans les sources de Qt encore.
source d'informationauteur g.p.daniels
Vous devez vous connecter pour publier un commentaire.
Comme Frank Osterfeld mentionné dans son commentaire:
Après avoir fouiller dans le QDebug code et QMessageLogger j'ai trouvé ma réponse. La pratique WinAPI fonction
OutputDebugString
.D'utilisation (Modifié à partir de peppe):
Je ne peux pas reproduire le problème: cela fonctionne correctement pour moi.