Using COM object with MinGW 4.8



  • Hi
    I'm trying to use an external COM object with MinGW 4.8.

    I used dumpcpp to generate *.h & *.cpp file.
    But it returns an empty result when I want to get the *.tlb file.
    I've tried with GUID & EXE name.

    The *.pro file contains:
    TYPELIBS = $$system(dumpcpp.exe --getfile "ext_prog.exe")
    isEmpty(TYPELIBS){
    message("Component is not found!")
    REQUIRES += Component
    }

    The compiler returns:
    "Some of the required modules (Component) are not available."
    "Skipped."

    Any advice?



  • you have to pull all of the necessary dlls of ext_prog.exe in your path, (e.g. the Qt libraries)
    as dumpcpp will try to execute the ext_prog.exe during the generation of the tlb file.

    regards
    Karl-Heinz



  • I find it strange that dumpcpp does not report any error.
    neither it generates any output



  • I've also tried to run dumpcpp in the install folder of the program.
    The program is not a secret, just wanted to make it generic.
    It is Zoiper.



  • I 've made a step forward using a different GUID.
    It actually returned the Zoiper.EXE itself.

    Now, I'm stuck compiling QAxObject descendants - e.g. IZoiperScript class (the first in *.h file)

    zoiperapi.h:281: error: no matching function for call to 'QAxObject::QAxObject(ZoiperAPI::IUnknown*, QAxObject*&)'
    

    from zoiperapi.h:

    class ZOIPERAPI_EXPORT IZoiperScript : public QAxObject
    {
    public:
        IZoiperScript(IDispatch *subobject = 0, QAxObject *parent = 0)
            : QAxObject((IUnknown*)subobject, parent)
        {
            internalRelease();
        }
    ...
    }
    

    QAxObject is defined as:

    class QAxObject : public QObject, public QAxBase
    {
        QAxObject(QObject *parent = 0);
        QAxObject(const QString &c, QObject *parent = 0);
        QAxObject(IUnknown *iface, QObject *parent = 0);
    ...
    }
    

    As QAxObject is a descendant of QObject this should not be a problem. Or miss something?

    It might that the problem is caused because I've used dumpcpp from Qt 5.9? (I'm compiling with 4.8)



  • I've tried compiling with Qt 5.9, but it returns the same error.

    Additionally, I had to modify the generated zoiperapi.h file:

    from:

    #include <qaxobject.h>
    #include <qaxwidget.h>
    

    to:

    #include <ActiveQt/QAxBase>
    #include <ActiveQt/QAxObject>
    

    But it still complains about the QAxObject constructor


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.