Meanwhile I called the routine with the order specified by dumpcpp and I get error with the parameter 1.
Doc says that I have to pass a QString so:
bool RegUserData
(QString CardID, QVariantList FingerData,
bool OverWrite
= 0,
int idxDesignation
= 0,
int idxDepartment
= 0,
QString FirstName
= 0,
QString LastName
= 0,
int idxGroup
= 0,
bool Status
= 0,
int WorkMode
= 0,
QString WorkTimeStart
= 0,
QString WorkTimeEnd
= 0,
QString EmployeeID
= 0,
int RegisterMode
= 0,
bool CheckExpire
= 0,
QDateTime ExpireDateStart
= 0,
QDateTime ExpireDateEnd
= 0,
QString Password
= 0,
int NF
= 0,
int TemplateSize
= 0);
bool RegUserData(QString CardID, QVariantList FingerData, bool OverWrite = 0, int idxDesignation = 0, int idxDepartment = 0, QString FirstName = 0, QString LastName = 0, int idxGroup = 0, bool Status = 0, int WorkMode = 0, QString WorkTimeStart = 0, QString WorkTimeEnd = 0, QString EmployeeID = 0, int RegisterMode = 0, bool CheckExpire = 0, QDateTime ExpireDateStart = 0, QDateTime ExpireDateEnd = 0, QString Password = 0, int NF = 0, int TemplateSize = 0);
To copy to clipboard, switch view to plain text mode
so I wrote this code:
//cardId
QString cardId
= QString::number( user
->cardId
(),
10 );
// cardId is a QString for example "1234567890"
//fp data
QVariantList fingerData;
int templatesize = (int)(user->templateSize());
char* fpPtr = user->fpdata();
for(int i = 0; i < templatesize; i++)
{
fingerData.append(v);
}
paramList.append(cardId);//CardID
paramList.append(fingerData);//FingerData
bool result = m_axobj->dynamicCall("RegUserData(QString CardID, QVariantList FingerData, \
bool OverWrite = 0, int idxDesignation = 0, \
int idxDepartment = 0, QString FirstName = 0, \
QString LastName = 0, int idxGroup = 0, \
bool Status = 0, int WorkMode = 0, \
QString WorkTimeStart = 0, QString WorkTimeEnd = 0, \
QString EmployeeID = 0, int RegisterMode = 0, \
bool CheckExpire = 0, QDateTime ExpireDateStart = 0, \
QDateTime ExpireDateEnd = 0, QString Password = 0, \
int NF = 0, int TemplateSize = 0)", paramList).toBool();
//cardId
QString cardId = QString::number( user->cardId(), 10 ); // cardId is a QString for example "1234567890"
//fp data
QVariantList fingerData;
int templatesize = (int)(user->templateSize());
char* fpPtr = user->fpdata();
for(int i = 0; i < templatesize; i++)
{
QVariant v = *(fpPtr+i);
fingerData.append(v);
}
paramList.append(cardId);//CardID
paramList.append(fingerData);//FingerData
bool result = m_axobj->dynamicCall("RegUserData(QString CardID, QVariantList FingerData, \
bool OverWrite = 0, int idxDesignation = 0, \
int idxDepartment = 0, QString FirstName = 0, \
QString LastName = 0, int idxGroup = 0, \
bool Status = 0, int WorkMode = 0, \
QString WorkTimeStart = 0, QString WorkTimeEnd = 0, \
QString EmployeeID = 0, int RegisterMode = 0, \
bool CheckExpire = 0, QDateTime ExpireDateStart = 0, \
QDateTime ExpireDateEnd = 0, QString Password = 0, \
int NF = 0, int TemplateSize = 0)", paramList).toBool();
To copy to clipboard, switch view to plain text mode
And I get the error:
QAxBase: Error calling IDispatch member Type mismatch in parameter 1.
Seems it doesn't like the QString CardID, but the documentation says that I have to pass the first param as a QString as I'm doing.
Where I'm wrong?
Best Regards,
Franco
Bookmarks