Hi to all, I'm disperate with this ActiveQt especially calling some com functions with dynamicCall and I don't get any help from this forum.
So I try again:
I have a COM object named PallyCOM.dll
I generated the doc with this code:
m_axobj->setControl("{1AF66B3E-B0D5-4108-80B5-13E429298140}");
QString d
= m_axobj
->generateDocumentation
();
return;
out << d;
m_axobj->setControl("{1AF66B3E-B0D5-4108-80B5-13E429298140}");
QString d = m_axobj->generateDocumentation();
QFile file("file.xml");
if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
return;
QTextStream out(&file);
out << d;
To copy to clipboard, switch view to plain text mode
it generated a xml file. I would call a routine called GetUserData.
The xml file says this:
QVariant GetUserData (QString CardID) [slot]
Connect a signal to this slot:
QObject::connect(sender, SIGNAL(someSignal(QString)), object, SLOT(GetUserData(QString)));
Or call the function directly:
QVariantList params = ...
QVariant result = object->dynamicCall("GetUserData(QString)", params);
But I really don't understand how to call it.
I tried many way and no one works:
QVariantList params;
userdata.append( userId_ );
m_axobj->dynamicCall("GetUserData(QString)", params);
userdata = params.toStringList();
qDebug() << userdata.count(); //it says 0
QVariantList params;
QStringList userdata;
userdata.append( userId_ );
m_axobj->dynamicCall("GetUserData(QString)", params);
userdata = params.toStringList();
qDebug() << userdata.count(); //it says 0
To copy to clipboard, switch view to plain text mode
this routine should return an array of string as the (very poor) doc says:
Function: GetUserData
Parameter: CardID(string/10)
Description: Get User Data
Return values: ArrayList
I realy don't understand how to call such routine and I need some help.
I also tried:
QVariantList list = m_axobj->dynamicCall("GetUserData(QString)","a string value"); //doesn't work
QVariantList list = m_axobj->dynamicCall("GetUserData(QString)","a string value"); //doesn't work
To copy to clipboard, switch view to plain text mode
and
QVariant list
= m_axobj
->dynamicCall
("GetUserData(QString)",
"a string value");
//doesn't work
QVariant list = m_axobj->dynamicCall("GetUserData(QString)","a string value"); //doesn't work
QStringList userdata = list.toStringList();
To copy to clipboard, switch view to plain text mode
I always get an empty list.
Please help me, I don't know where I'm wrong.
The returned value should be a QString array so:
CardID(string/10)
OverWrite(0: no overwrite. If ID is already registered, return with result 06.,1: overwrite.)
idxDesignation
idxDepartment
FirstName(string /15)
LastName(string /15)
idxGroup (integer/0~255)
Status(1 : Activate, 0 : Deactivate)
WorkMode(0:finger+pass ,1:finger,2

ass,3:finger or pass,4:Only Crad,5:Only from external Reader,6:Matching on Mifare card)
WorkTimeStart()
WorkTimeEnd()
EmployeeID
RegisterMode( Finger =1, Password = 2, Finger and Password = 3, Card=4, Max=4)
CheckExpire
ExpireDateStart
ExpireDateEnd
Password(string/10)
NF(Number of fingerprint data per user Max. 2)
TemplateSize
FingerData (byte,User Fingerprint data total size depends on the number of fingerprints registered per user)
And I always get an empty list
Best Regards
Bookmarks