Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Italian
  4. Eccezioni nate in file moc per signal-slot

Eccezioni nate in file moc per signal-slot

Scheduled Pinned Locked Moved Unsolved Italian
7 Posts 3 Posters 2.5k Views
  • 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.
  • T Offline
    T Offline
    tonypello
    wrote on last edited by
    #1

    Buonasera,
    da alcune prove fatte riguardo eccezioni sotto WindowsCE il codice autogenerato dalle Qt (in particolare i file moc) sollevano delle eccezioni di cui non comprendo la natura. E' possibile che i file moc, autogenerati da Qt, per la gestione delle signal-slot, generino delle eccezioni sotto WindowsCE?
    Grazie

    1 Reply Last reply
    0
    • P Offline
      P Offline
      patrik08
      wrote on last edited by patrik08
      #2

      Ciao...
      non credo proprio i file moc sono dei complementi come se fossero scritti da te... aiutando la gestione dei segnali...
      ecco un esempio:

      static const qt_meta_stringdata_OasiMain_t qt_meta_stringdata_OasiMain = {
          {
      QT_MOC_LITERAL(0, 0, 8), // "OasiMain"
      QT_MOC_LITERAL(1, 9, 16), // "request_to_close"
      QT_MOC_LITERAL(2, 26, 0), // ""
      QT_MOC_LITERAL(3, 27, 8), // "appsOpen"
      QT_MOC_LITERAL(4, 36, 4), // "file"
      QT_MOC_LITERAL(5, 41, 4), // "load"
      QT_MOC_LITERAL(6, 46, 1), // "f"
      QT_MOC_LITERAL(7, 48, 9), // "maybeSave"
      QT_MOC_LITERAL(8, 58, 18), // "setCurrentFileName"
      QT_MOC_LITERAL(9, 77, 8), // "fileName"
      QT_MOC_LITERAL(10, 86, 7), // "fileNew"
      

      come vedi sono puro codice di aiuto per failitare il lavoro...
      e i moc sanno cosa si collega con i eventi.. slot

      ma oggi ho letto :
      Other changes

      We removed the unmaintained support for Windows CE, and changed the ClearCase integration to be disabled by default.
      a proposito di Windows CE...
      http://blog.qt.io/blog/2017/09/05/qt-creator-4-4-0-released/

      T 1 Reply Last reply
      0
      • P patrik08

        Ciao...
        non credo proprio i file moc sono dei complementi come se fossero scritti da te... aiutando la gestione dei segnali...
        ecco un esempio:

        static const qt_meta_stringdata_OasiMain_t qt_meta_stringdata_OasiMain = {
            {
        QT_MOC_LITERAL(0, 0, 8), // "OasiMain"
        QT_MOC_LITERAL(1, 9, 16), // "request_to_close"
        QT_MOC_LITERAL(2, 26, 0), // ""
        QT_MOC_LITERAL(3, 27, 8), // "appsOpen"
        QT_MOC_LITERAL(4, 36, 4), // "file"
        QT_MOC_LITERAL(5, 41, 4), // "load"
        QT_MOC_LITERAL(6, 46, 1), // "f"
        QT_MOC_LITERAL(7, 48, 9), // "maybeSave"
        QT_MOC_LITERAL(8, 58, 18), // "setCurrentFileName"
        QT_MOC_LITERAL(9, 77, 8), // "fileName"
        QT_MOC_LITERAL(10, 86, 7), // "fileNew"
        

        come vedi sono puro codice di aiuto per failitare il lavoro...
        e i moc sanno cosa si collega con i eventi.. slot

        ma oggi ho letto :
        Other changes

        We removed the unmaintained support for Windows CE, and changed the ClearCase integration to be disabled by default.
        a proposito di Windows CE...
        http://blog.qt.io/blog/2017/09/05/qt-creator-4-4-0-released/

        T Offline
        T Offline
        tonypello
        wrote on last edited by
        #3

        @patrik08

        Scusa ma non ho capito bene la natura del tuo messaggio....
        Potresti spiegarti meglio.
        Grazie

        1 Reply Last reply
        0
        • VRoninV Offline
          VRoninV Offline
          VRonin
          wrote on last edited by
          #4

          Quale versione di Qt (e, eventualmente, Qt Creator) stai usando?

          "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
          ~Napoleon Bonaparte

          On a crusade to banish setIndexWidget() from the holy land of Qt

          T 1 Reply Last reply
          0
          • VRoninV VRonin

            Quale versione di Qt (e, eventualmente, Qt Creator) stai usando?

            T Offline
            T Offline
            tonypello
            wrote on last edited by
            #5

            @VRonin
            Ciao, sto usando Qt 4.6 e credo le eccezioni nascano nel collegamento signal-slot nei file moc... in particolare credo di aver individuato questo punto:

            int SynopticPanel::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
            ....
            ....
            ....
            
            case 15: function15 ((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2]))); break;
            

            Ho un eccezione di tipo Acess Violation e credo che la causa sia questo pezzo di codice in particolare il puntatore _a.
            Potrebbe essere?
            Grazie

            1 Reply Last reply
            0
            • VRoninV Offline
              VRoninV Offline
              VRonin
              wrote on last edited by
              #6

              Bug in moc sono molto rari ma Qt 4.6 e' una versione antica (e' di 8 anni fa) quindi potrebbero esserci cose risolte nel tempo.

              1. puoi usare almeno Qt 4.8? o anche meglio Qt 5.9?
              2. Puoi postare la stack trace di quando il programma crasha?
              3. Puoi provare il programma su una piattaforma piu' "comune" (Desktop Windows o Linux) e vedere se li' funziona? Vorrei capire se e' un problema del programma o dell'integrazione con WinCE

              "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
              ~Napoleon Bonaparte

              On a crusade to banish setIndexWidget() from the holy land of Qt

              T 1 Reply Last reply
              0
              • VRoninV VRonin

                Bug in moc sono molto rari ma Qt 4.6 e' una versione antica (e' di 8 anni fa) quindi potrebbero esserci cose risolte nel tempo.

                1. puoi usare almeno Qt 4.8? o anche meglio Qt 5.9?
                2. Puoi postare la stack trace di quando il programma crasha?
                3. Puoi provare il programma su una piattaforma piu' "comune" (Desktop Windows o Linux) e vedere se li' funziona? Vorrei capire se e' un problema del programma o dell'integrazione con WinCE
                T Offline
                T Offline
                tonypello
                wrote on last edited by tonypello
                #7

                @VRonin

                1. No non posso usare versioni diverse
                2. Ho provato a risalire allo stack trace utilizzando la funzione GetThreadCallStack nel branch dell' __except ma visto che la cattura delle eccezioni "risale" lo stack, non sono riuscito a individuare il punto esatto dove l'eccezione viene lanciata tutto questo sotto WinCE. Conosci un metodo per recuperare lo stack trace completo? Ho provato ad utilizzare la libreria "stacktracer" consigliata su alcuni forum ma non sono riuscito ad integrarla a causa di incompatibilità con le mie librerie.
                3. Il programma gira su Desktop Windows e gira su WinCE e i casi di crash dovute ad eccezioni sono rari (ma ci sono).
                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