Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-28383

Dumpcpp utility generates incorrect header

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P3: Somewhat important
    • None
    • 5.0.0 Beta 2
    • ActiveX Support
    • None
    • Windows 7, MSVC 2010, Qt5 Beta 2 (downloaded 02.12.12 from git)

    Description

      I try to compile project using Inventor namespace, genered by dumpcpp. Namespace's files genereated successfully with https://codereview.qt-project.org/#change,41684 and https://codereview.qt-project.org/#change,41685 fixes. But while processing the header file, there are several errors. The first type errors like this:
      .\RxInventor.h(191599) : error C2061: syntax error : identifier 'Face'
      .\RxInventor.h(191859) : error C2061: syntax error : identifier 'Face'
      .\RxInventor.h(201158) : error C2061: syntax error : identifier 'Face'
      .\RxInventor.h(201438) : error C2061: syntax error : identifier 'Face'
      dumpcpp try to use Inventor's type without use namespace defenition (correct is: inline void GetData(IDispatch** Line, Inventor::Face** Face); ). It can be fix manually, but it takes time.

      The second type errors like this:
      .\RxInventor.h(236655) : error C2061: syntax error : identifier 'BrowserPanesEventsObject'
      .\RxInventor.h(236666) : warning C4520: 'Inventor::BrowserPanesEvents' : multiple default constructors specified
      .\RxInventor.h(236658) : error C2065: 'iface' : undeclared identifier
      .\RxInventor.h(236659) : error C2065: 'iface' : undeclared identifier
      .\RxInventor.h(236659) : error C2541: 'delete' : cannot delete objects that are not pointers
      .\RxInventor.h(488682) : error C2668: 'Inventor::BrowserPanesEvents::BrowserPanesEvents' : ambiguous call to overloaded function
      .\RxInventor.h(236655): could be 'Inventor::BrowserPanesEvents::BrowserPanesEvents(void)'
      .\RxInventor.h(236649): or 'Inventor::BrowserPanesEvents::BrowserPanesEvents(IDispatch *,QAxObject *)'
      while trying to match the argument list '(void)'
      .\RxInventor.h(488693) : error C2668: 'Inventor::BrowserPanesEvents::BrowserPanesEvents' : ambiguous call to overloaded function
      .\RxInventor.h(236655): could be 'Inventor::BrowserPanesEvents::BrowserPanesEvents(void)'
      .\RxInventor.h(236649): or 'Inventor::BrowserPanesEvents::BrowserPanesEvents(IDispatch *,QAxObject *)'
      while trying to match the argument list '(void)'

      dumpcpp skip defenition of object:
      // skipping event interface BrowserPanesEventsObject
      but trying to use it in the class constructor:
      BrowserPanesEvents(BrowserPanesEventsObject *iface)
      : QAxObject()

      { initializeFrom(iface); delete iface; }

      And project cannot compile with this errors

      Attachments

        1. inventorDemo.zip
          774 kB
          Bolotsev Dmitry
        2. main.cpp
          65 kB
          Bolotsev Dmitry
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            kleint Friedemann Kleint
            fagot Bolotsev Dmitry
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes