Bonjour,

Je m'excuse si ce n'est pas tout à fait la bonne section, mais j'ai un problème relatif au C et je ne suis pas un expert...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
LONG SCardListReaders(
  __in     SCARDCONTEXT hContext,
  __in     LPCTSTR mszGroups,
  __out    LPTSTR mszReaders,
  __inout  LPDWORD pcchReaders
);
Avec notamment la paramètre mszReaders
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
mszReaders
 
    Multi-string that lists the card readers within the supplied reader groups. If this value is NULL, SCardListReaders ignores the buffer length supplied in pcchReaders, writes the length of the buffer that would have been returned if this parameter had not been NULL to pcchReaders, and returns a success code.
J'utilise cette fonction pour récuperer les lecteurs de cartes à puce détectés sur le PC.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
printf("listReader : '%s'\n", mszReaders);
Si j'affiche la liste des lecteurs, même si j'en ai plusieurs, il m'en affiche toujours un seul.

J'ai trouvé ca aussi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
The reader names is a multi-string and separated by a nul character ('\0') and ended by a double nul character. "Reader A\0Reader B\0\0".
Alors mes questions :

1/ le printf n'arreterais pas l'affichage au premier '\0' rencontré ? Si oui comment faire pour tout afficher ?
2/ j'ai essayé le strcpy() de cette facon

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
readerName= (char *) malloc(256 * sizeof(char));
                strcpy(readerName, mszReaders);
même résultat toujours un seul lecteur alors que les deux sont bien présent...

Quelqu'un pourrait m'aider à me dépatouiller s'il vous plait

Merci d'avance.