IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Qt: Untested Windows version 10.0 detected!

  1. #1
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut Qt: Untested Windows version 10.0 detected!
    Bonjour,

    J'ai une simple application console Qt5.6 qui génère systématiquement le message "Qt: Untested Windows version 10.0 detected!"
    Normal mais j'aimerai le retirer et pour ca j'utilise le code ci-dessous. Mais visiblement ca fonctionne pour " qDebug()" mais pas pour ce fameux message.
    Je ne comprend pas bien pourquoi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
    {
        QByteArray localMsg = msg.toLocal8Bit();
        const char *file = context.file ? context.file : "";
        const char *function = context.function ? context.function : "";
        switch (type) {
        case QtDebugMsg:
            fprintf(stderr, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function);
            break;
        case QtWarningMsg:
            fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function);
            break;
        case QtCriticalMsg:
            fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function);
            break;
        case QtFatalMsg:
            fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function);
            break;
        }
    }
     
    int main(int argc, char* argv[])
    {
      qInstallMessageHandler(myMessageOutput);
      qDebug() << "Ce message est bien intercepté par myMessageOutput";
      QCoreApplication app(argc, argv);
      return(app.exec());
    }

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 591
    Points
    188 591
    Par défaut


    Ne serait-il pas plus simple de mettre à jour Qt, par exemple vers la version 5.15 ?

    As-tu tenté d'appeler qInstallMessageHandler avec une fonction qui ne fait littéralement rien, comme celle-ci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) {
      Q_UNUSED(type);
      Q_UNUSED(context);
      Q_UNUSED(msg);
    }
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Oui bien sur l'upgrade de Qt résoudrait ce souci, mais ce n'est pas à l'ordre du jour.
    Cela dit, je ne comprends pas bien ta seconde proposition. Ma fonction "myMessageOutput(" fonctionne comme attendue, sauf pour le message en question qui n'y passe pas, vérifié en mode debug.

  4. #4
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Ok je viens de comprendre.
    En fait le message est généré par la fonction "qInstallMessageHandler(", avant donc de rediriger les qWarning et qDebut de Qt.
    Donc pas possible à priori par cette méthode.

  5. #5
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 591
    Points
    188 591
    Par défaut
    À voir https://github.com/qt/qt/blob/0a2f23...obal.cpp#L1853, le message devrait bien être traité par qInstallMessageHandler, sauf que la fonction est appelée avant main (pour initialiser une variable globale : https://github.com/qt/qt/blob/0a2f23...obal.cpp#L1891).

    Ne pourrais-tu pas mimer le comportement de https://github.com/qt/qtbase/blob/df...ging.cpp#L2112, mais avant que main soit exécutée, comme la définition de https://github.com/qt/qtbase/blob/df...ging.cpp#L1565 ? Je pense à quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) {
      Q_UNUSED(type);
      Q_UNUSED(context);
      Q_UNUSED(msg);
    }
    const auto PRE_MSG_HANDLER = qInstallMessageHandler(myMessageOutput);
    int main() {}
    Ce code n'est absolument pas testé, ni même compilé !
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  6. #6
    Membre averti Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Points : 444
    Points
    444
    Par défaut
    Merci de la suggestion.

    avec cette ligne ca compile, mais ca n'empêche pas l'affichage du message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    QtMessageHandler PRE_MSG_HANDLER = qInstallMessageHandler(myMessageOutput);

Discussions similaires

  1. Problème installation VM Windows XP - DD non detecté
    Par Fabricatore dans le forum VirtualBox
    Réponses: 7
    Dernier message: 09/12/2021, 19h42
  2. Réponses: 0
    Dernier message: 02/07/2014, 10h09
  3. Réponses: 1
    Dernier message: 05/04/2014, 17h38
  4. Réponses: 0
    Dernier message: 06/09/2013, 13h05
  5. detecter la version de Windows
    Par baert dans le forum C++
    Réponses: 3
    Dernier message: 29/01/2008, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo