Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. French
  4. Problème avec QAXobject et excel

Problème avec QAXobject et excel

Scheduled Pinned Locked Moved Unsolved French
9 Posts 4 Posters 1.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    lacombe
    wrote on last edited by
    #1

    Bonjour,
    Si je mets dans les membres privés : QAXobject *excel; et dans une méthode: excel = new QAxObject("Excel.Application"); Cela provoque une erreur.
    Mais si dans l'intérieur de la méthode je mets QAxObject *excel = new QAxObject("Excel.Application"); alors ça marche.
    Ce serait bien pratique car mon objet excel serait défini dans d'autres méthodes.
    Il manque peut être quelque chose.
    Merci de votre aide.

    JonBJ 1 Reply Last reply
    0
    • L lacombe

      Bonjour,
      Si je mets dans les membres privés : QAXobject *excel; et dans une méthode: excel = new QAxObject("Excel.Application"); Cela provoque une erreur.
      Mais si dans l'intérieur de la méthode je mets QAxObject *excel = new QAxObject("Excel.Application"); alors ça marche.
      Ce serait bien pratique car mon objet excel serait défini dans d'autres méthodes.
      Il manque peut être quelque chose.
      Merci de votre aide.

      JonBJ Offline
      JonBJ Offline
      JonB
      wrote on last edited by
      #2

      @lacombe
      Montrez le code et l'erreur.

      1 Reply Last reply
      0
      • L Offline
        L Offline
        lacombe
        wrote on last edited by
        #3

        Rebonjour,
        Voici succintement mon code:

        class ConnexionExcel
        {
        public:
        ConnexionExcel();

        void LectureExcel();

        private:
        QAxObject *excel;

        };
        Ensuite dans le cpp:

        void ConnexionExcel::LectureExcel()
        {
        excel = new QAxObject("Excel.Application");
        ....
        }
        Le programme plante et j'ai : AppliExcel.exe crashed.

        Si en revanche je fais :

        void ConnexionExcel::LectureExcel()
        {
        QAxobject *excel = new QAxObject("Excel.Application");
        ....
        }
        Ca marche très bien
        Je ne comprends pas du tout d'où ça vient.
        Merci de votre aide.

        JonBJ KroMignonK 2 Replies Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #4

          Bonsoir,

          Il faut vérifier tous les usages du pointeur "excel". Le pointeur étant invalide, il y a des chances qu'il soit utilisé avant d'être correctement initialisé.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • L Offline
            L Offline
            lacombe
            wrote on last edited by
            #5

            Bonjour,
            Merci de votre réponse.
            Le pointeur excel est uniquement défini dans private. Ou pourrait il être utilisé ?
            Merci de votre aide.

            1 Reply Last reply
            0
            • L lacombe

              Rebonjour,
              Voici succintement mon code:

              class ConnexionExcel
              {
              public:
              ConnexionExcel();

              void LectureExcel();

              private:
              QAxObject *excel;

              };
              Ensuite dans le cpp:

              void ConnexionExcel::LectureExcel()
              {
              excel = new QAxObject("Excel.Application");
              ....
              }
              Le programme plante et j'ai : AppliExcel.exe crashed.

              Si en revanche je fais :

              void ConnexionExcel::LectureExcel()
              {
              QAxobject *excel = new QAxObject("Excel.Application");
              ....
              }
              Ca marche très bien
              Je ne comprends pas du tout d'où ça vient.
              Merci de votre aide.

              JonBJ Offline
              JonBJ Offline
              JonB
              wrote on last edited by
              #6

              @lacombe said in Problème avec QAXobject et excel:

              Le programme plante et j'ai : AppliExcel.exe crashed.

              Lancez le programme sous le debugger. Lorsque "crashed" arrive, voyez le vitre "stack trace" et montrez le.

              1 Reply Last reply
              0
              • L lacombe

                Rebonjour,
                Voici succintement mon code:

                class ConnexionExcel
                {
                public:
                ConnexionExcel();

                void LectureExcel();

                private:
                QAxObject *excel;

                };
                Ensuite dans le cpp:

                void ConnexionExcel::LectureExcel()
                {
                excel = new QAxObject("Excel.Application");
                ....
                }
                Le programme plante et j'ai : AppliExcel.exe crashed.

                Si en revanche je fais :

                void ConnexionExcel::LectureExcel()
                {
                QAxobject *excel = new QAxObject("Excel.Application");
                ....
                }
                Ca marche très bien
                Je ne comprends pas du tout d'où ça vient.
                Merci de votre aide.

                KroMignonK Offline
                KroMignonK Offline
                KroMignon
                wrote on last edited by
                #7

                @lacombe said in Problème avec QAXobject et excel:

                Ca marche très bien
                Je ne comprends pas du tout d'où ça vient.
                Merci de votre aide.

                Ce que vous décrivez ici n'a pas de sens, à mon avis vous avez un soucis entre des variables locales et les membres de votre classe.
                Personnellement, pour ne pas me mélanger les pinceaux, je défini les membres de mes class toujours avec un 'm' suivit d'une majuscule.
                Ensuite, dans le constructeur de préférence toujours initialiser les membres de la classe:
                Et enfin, dans le destructeur, ne pas oublier de libérer la mémoire allouée.
                Ce qui donnerai dans votre cas:

                class ConnexionExcel
                {
                public:
                    ConnexionExcel(): mExcel(new QAxObject ("Excel.Application")) {}
                    ~ConnexionExcel() { mExcel->deleteLater(); }
                
                    void LectureExcel();
                
                private:
                    QAxObject *mExcel;
                };
                

                It is an old maxim of mine that when you have excluded the impossible, whatever remains, however improbable, must be the truth. (Sherlock Holmes)

                1 Reply Last reply
                1
                • L Offline
                  L Offline
                  lacombe
                  wrote on last edited by
                  #8

                  Bonjour,
                  Merci de votre réponse. Effectivement c'est de ma faute: j'avais déclaré un pointeur connexionExcel *connect, mais je n'avais pas ajouté connect = new connexionExcel).
                  Donc merci de votre aide, maintenant cela marche.

                  1 Reply Last reply
                  0
                  • SGaistS Offline
                    SGaistS Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on last edited by
                    #9

                    Parfait !

                    Il ne reste plus qu'à marquer la discussion comme résolue pour que les autres membres du forum sachent qu'une solution a été trouvée.

                    Interested in AI ? www.idiap.ch
                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                    1 Reply Last reply
                    0

                    • Login

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Categories
                    • Recent
                    • Tags
                    • Popular
                    • Users
                    • Groups
                    • Search
                    • Get Qt Extensions
                    • Unsolved