Witam,
piszę sobie prosty program przy użyciu winscard.h. Bez problemu odnajduje mój czytnik i ustala połączenie z nim. Niestety, kiedy uruchamiam SCardGetStatusChange
cały czas dostaję błąd 0x80110457 - "The specified partition name is already in use on this computer"
Oto fragment kodu odpowiadający za to:
bool NFCReader::waitForCard(QString readerName, DWORD timeout)
{
bool foundCard = false;
lReturn = SCardGetStatusChangeA(hContext,timeout,rgscState,*readerName.toStdString().c_str());
if( lReturn == SCARD_S_SUCCESS)
{
for(auto pos = readerState.begin(); pos != readerState.end(); ++pos)
{
if (((pos->dwCurrentState & SCARD_STATE_PRESENT) == 0) &&
(pos->dwEventState & SCARD_STATE_PRESENT))
{
// readerName = pos->szReader;
foundCard = true;
}
pos->dwCurrentState = pos->dwEventState & ~SCARD_STATE_CHANGED;
}
}
else
{
qDebug() << getErrorCode(lReturn) << " " << lReturn;
}
return foundCard;
}