Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
6.8.2
Description
Steps to reproduce
- Build the Simple Example (ActiveQt)
- From the Command Prompt, run `dumpcpp simpleax.exe`
Outcomes
The generated C++ code is broken, as Qt types are forward-declared as external types inside the custom namespace:
namespace simpleaxLib { // ... struct QRect; struct QSize; struct QPoint; // ... inline QRect IQSimpleAX::normalGeometry() const // ERROR: Incomplete result type 'QRect' in function definition { QVariant qax_result = property("normalGeometry"); return *reinterpret_cast<QRect*>(qax_result.data()); } // ... inline void IQSimpleAXEvents::customContextMenuRequested(simpleaxLib::QPoint p_pos) { void *_a[] = {0, (void*)&p_pos}; qt_metacall(QMetaObject::InvokeMetaMethod, 7, _a); } //... }
Use-case
One party produced an SDK based on ActiveQt (and only the COM interface is available, not the native C++ headers and libraries). Another party is trying to use that SDK from a Qt-based application.