My code is a static lib MyDll.a we have another shared library OurDll.so which links statically to MyDll.a(MyDll is the one with the GUI). There is another Java GUI application which links dynamically to the OurDll.so and loads it. When the GUI application performs verify PIN action it calls OurDll.so which in its turn use MyDll.a verify PIN function that have to show GUI dialog.
My Code:
This is called when OurDll.so is loaded.
void initPkcsPinDialog(){
if (!qApp)
{
a = 0;
int argc = 1;
char *argv[] = { "asePinDialog", NULL };
}
}
//This is calling the GUI dialog (VerifyPin3Des and VerifyPinSig are dialogs)
bool aseLogin(aseVerifyData& aseData)
{
m_iLastSlotId = aseData.slotID;
if(aseData.pinType == KEY_TYPE_CHAL_RESP)
{
VerifyPin3Des *pinDlg = new VerifyPin3Des(aseData);
m_pOpenDialog = pinDlg;
pinDlg->exec();
delete pinDlg;
m_pOpenDialog = NULL;
}
else
{
VerifyPinSig *pinDlg = new VerifyPinSig(aseData);
m_pOpenDialog = pinDlg;
pinDlg->exec();
delete pinDlg;
m_pOpenDialog = NULL;
}
m_iLastSlotId = 0;
return true;
}
QApplication * a = 0;
void initPkcsPinDialog(){
if (!qApp)
{
a = 0;
int argc = 1;
char *argv[] = { "asePinDialog", NULL };
a = new QApplication(argc, argv);
}
}
//This is calling the GUI dialog (VerifyPin3Des and VerifyPinSig are dialogs)
bool aseLogin(aseVerifyData& aseData)
{
m_iLastSlotId = aseData.slotID;
if(aseData.pinType == KEY_TYPE_CHAL_RESP)
{
VerifyPin3Des *pinDlg = new VerifyPin3Des(aseData);
m_pOpenDialog = pinDlg;
pinDlg->exec();
delete pinDlg;
m_pOpenDialog = NULL;
}
else
{
VerifyPinSig *pinDlg = new VerifyPinSig(aseData);
m_pOpenDialog = pinDlg;
pinDlg->exec();
delete pinDlg;
m_pOpenDialog = NULL;
}
m_iLastSlotId = 0;
return true;
}
To copy to clipboard, switch view to plain text mode
Bookmarks