0

だから..私はpcsc-reader、smartcard、およびc ++コードを持っています。リーダーを見つけて選択し、接続して ATR を取得します。

しかし、ATR-get の後、APDU リクエストを取得する必要があり、このコード

SCARD_IO_REQUEST ioRecv;
byte  pbRecvBuffer[255]; 
int pbRecvLength=255;
byte   pbSendBuffer[] ={ 0x00, 0xb0, 0x00, 0x00}; //any comand
int cbSendLength = sizeof(pbSendBuffer);//size of comand
ioRecv.cbPciLength = 255;
DWORD  dwSize=255; 

//our Transmit those return error
lReturn = SCardTransmit(hSC,
                        (LPCSCARD_IO_REQUEST)dwAP,
                        pbSendBuffer,
                cbSendLength,
                        NULL,
                        pbRecvBuffer,
                        &dwSize);

if(lReturn==SCARD_S_SUCCESS){
//do smt with pbRecvBuffer   
printf("success");
}
else {
    printf("error "); 
}

常に「エラー」を返します...私を助けたり、私のエラーを指摘したりできれば、とても感謝しています。

ありがとうございました

4

1 に答える 1

0

SCardTransmit() の最初のパラメータでエラーが見つかりました - SCardTransmit() の MSDN の説明によると、hSC を渡す必要はありません。そのため、SCardConnect() から受け取った m_hCardHandle を渡す必要があります。(LPCSCARD_IO_REQUEST)dwAPを渡すのも間違っています

うん。それは問題を解決しました

于 2013-04-23T14:14:11.213 に答える