Bonsoir,
J'essaie de transformer cette fonction en C dans laquelle le tableau contenant la commande envoyé à une API a son dernier index pointant sur un pointeur, si je comprend bien la longueur ATR contenu dans cmd[4] est calculé à posteriori à partir de la réponse, mais je vois pas comment faire cela en vb.net
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 unsigned char cmd[5]; unsigned char rsp[252]; unsigned short rspLen; /* Build command */ cmd[0] = 0x80; cmd[1] = 0x36; cmd[2] = 0x00; cmd[3] = 0x00; cmd[4] = *atrLength; /* Send command */ rspLen = sizeof(rsp); deviceLastError = sSmartISOEx( cscHandle, samSlot, 5, cmd, &rspLen, rsp ); *atrLength = (unsigned char)rspLen - 2;
Le prototype de la fonction comme il est spécifié
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 short sSmartISOEx (CSC_HANDLE apiHandle, eDestReaderType xDestReaderType, USHORT usInDataLen, const UCHAR *pucDataIn, USHORT *pusOutDataLen, UCHAR *pucDataOut);
Pour le moment ma commande qui fonctionne ressemble à ca:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Dim command(4) As Byte command(0) = 128 command(1) = 54 command(2) = 0 command(3) = 0 command(4) = 255 ' 255 pour prévoir le max possible de la réponse Dim rsp(255) As Byte ' 255 pour prévoir le max possible de la réponse 'Dim rspLen As New uint16 = 255 ApiReturn = sSmartISOEx(cscHandle, samSlot,5,cmd(0), rspLen,rsp(0))
Merci par avance pour les pistes, car là je vois pas du tout comment faire.
Partager