Ok, I've tried from CMDLine its working. But like to know the root cause for it.
Here is my class interface,
@
// COM dll (no UI component)
#include <ActiveQt/QAxBindable>
#include "classM.h"
#include "classA_global.h"
#include <qobject.h>
#include <QMetaObject>
struct key {
int someVar;
};
// ,
class CLASSA_EXPORT classA : public QObject, public QAxBindable , public scanner
{
Q_OBJECT
public:
classA( QObject p = 0);
STDMETHOD(Init)(LPTNTDRVINFO pDrvInfo); // 3rd part "scanner" virtual function
ULONG STDMETHODCALLTYPE AddRef( void);
ULONG STDMETHODCALLTYPE Release( void);
STDMETHOD(QueryInterface)(
/ [in] / REFIID riid,
/ [iid_is][out] */ __RPC__deref_out void __RPC_FAR *__RPC_FAR *ppvObject);
public slots:
QString getSaampleData();
private:
//bla bla bla...
};
QAXFACTORY_DEFAULT(classA,
"{20C63A76-5FEF-49C8-8E83-26957590748B}",
"{BE690126-A3413-47D1-A278-1E69FCD1B61E}",
"{0DED1E03-D4F2-44C3-8B67-56F4D7D87661}",
"{5263E150-F234-4AE0-9E38-CBE753E936C0}",
"{96AB3485-1234-4B60-BB62-5C77C22EF154}")
// singleton class interface. dll
#include <QObject>
#include<QVariant>
#include <QList>
#include <QMetaObject>
#include "singleton_global.h"
#include <qDebug.h>
class SINGLETON_EXPORT singleton : public QObject
{
Q_OBJECT
static bool instanceFlag;
static singleton single;
singleton();
singleton(const singleton&);
public:
static singleton getInstance();
~singleton();
QMap<QString, struct key*> getMapVar();
private:
QMap<QString, struct key*> MapVar;
};
// implementation of CLASSA(COM object).
QString ClassA::getSaampleData(){
QMap<QString, struct key*> tempMapVar;
tempMapVar = singleton::getInstance()->getMapVar(); // gives error while building , class do not have metaobject...
}
// console application
main() {
ClassALib::IClassPtr obj;
HRESULT hr = CoInitialize(NULL);
if (FAILED(hr))
{
#if _DEBUG
qDebug("CoInitialize Failed");
#endif
return -1;
}
obj.CreateInstance("{20C63A76-5FEF-49C8-8E83-26957590748B}");
if(!obj) {
return -1;
}
obj->getSaampleData();
}
@
This is how my interface looks like,