Mit C/C++ lässt sich der Kartenleser bzw. die Karte ganz einfach über die winscard.dll von Windows ansprechen.
Man kann dann z.B. direkt die Mifare DESfire Kommandos schicken (z.B. 0x60 für GetCardID oder 0x6a für GetApplicationIDs)
Hier ein paar C Code Fragmente dazu:
SCARDCONTEXT m_hCardContext;
SCARDHANDLE m_hCard;
LONG lRet;
lRet = SCardEstablishContext( SCARD_SCOPE_SYSTEM, NULL, NULL, &m_hCardContext );
...
lRet = SCardConnect( m_hCardContext,
"REINER SCT cyberJack RFID basis 0",
SCARD_SHARE_SHARED,
SCARD_PROTOCOL_T1,
&m_hCard,
&dwActiveProtocol );
...
lRet = SCardTransmit( m_hCard,
SCARD_PCI_T1,
m_pbSendBuffer,
m_dwSendLength,
NULL,
m_pbRecvBuffer,
&dwRecvLength );
Die Karten-Antworten landen dann in m_pbRecvBuffer.
Wichtig ist hier nur, das Protokoll auf T=1 einzustellen.
Ich habe das mal schnell implementiert und es klappt bestens.
Mit T=0 hat die Karte bei mir nicht kommuniziert.
Gruß,
Wolfgang