-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
5.5.0
-
None
-
Win7, MinGW
Dumpcpp shades the method signature in auto generated files if the property name and the method name are the same.
Example of idl file:
interface ISimpletest : IUnknown{
[helpstring("method SetMode")] HRESULT SetMode([out,retval] LONG* Value);
[helpstring("method Print")] HRESULT Print([in] BSTR str);
[propget, helpstring("property Mode")] HRESULT Mode([out, retval] LONG* pVal);
[propput, helpstring("property Mode")] HRESULT Mode([in] LONG newVal);
};
Example of auto generated files:
// Actual coclasses
class SIMPLECOMLIB_EXPORT Simpletest : public QAxObject
{
public:
Simpletest(QObject *parent = 0)
: QAxObject(parent)
{
setControl("{e4b7d28c-6401-471b-b24c-06e0e2e8f8e3}");
}
Simpletest(ISimpletest *iface)
: QAxObject()
{
initializeFrom(iface);
delete iface;
}
/*
Property Mode
property Mode
*/
inline int Mode() const; //Returns the value of Mode
inline void SetMode(int value); //Sets the value of the Mode property
/*
Method Print
method Print
*/
inline void Print(const QString& str);
// meta object functions
static const QMetaObject staticMetaObject;
virtual const QMetaObject *metaObject() const { return &staticMetaObject; }
virtual void *qt_metacast(const char *);
};
It may be fixed by these ways:
1)more sophisticated check signature of methods and property
(signature of setter is "inline void SetMode(int value);" signature of method would be "inline int SetMode();")
2)allow to rename methods by passing command-line parameter
3)allow to rename setter prefix by passing command-line parameter
- relates to
-
QTBUG-83735 Dumpcpp name collision leads to undefined symbols when method names clash with QAxBase's ones
-
- Closed
-