Bonjour,

je dois lire/écriture des données d'un lecteur de carte (ChipDrive SCR3311) via une librairie MCSCM.DLL sur Delphi 2007.

Malheureusement, il n'y a pas beaucoup de Doc et exemple pour Delphi.

J'ai bien trouvé les démos sur le site officiel pour Delphi mais apparemment l'exemple me signale que j'ai une mauvaise carte insérée dedans. par contre si je prends une autre exemple sur VC / VB, je peux lire les données de la carte!
http://www.scmmicro.com/support/pc-s...ent-tools.html

J'ai pu trouvé une partie de code pour Delphi qui permet d'initialiser la carte mais je sèche sur la lecture de la carte.

Je pense qu'il y a des erreurs sur mes déclarations de procédures (McardReadMemory entre autre) pour effectuer une lecture.

Voici les déclarations
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
  Function SCardEstablishContext( swScope:longint;  pvReserved1:longint;  pvReserved2:longint; var phSCardContext:longint):longint stdcall; external 'WINSCARD.DLL';
  Function SCardReleaseContext( hSCardContext:longint):longint stdcall; external 'WINSCARD.DLL';
  Function MCardInitialize( hSCardContext:longint; scReaderName:String;var phMCardContext:longint;var pdwDLLVersion:longint):longint stdcall; external 'MCSCM.DLL';
  Function MCardShutdown( hMCardContext:longint):longint stdcall; external 'MCSCM.DLL';
  Function MCardConnect( hMCardContext:longint; dwConnectMode:longint; byCardType:Byte;var phMCard:longint):longint stdcall; external 'MCSCM.DLL';
  Function MCardDisconnect( hMCardContext:longint; dwDisposition:longint):longint stdcall; external 'MCSCM.DLL';
  Function MCardGetAttrib( hMCardContext:longint; dwAttrId:longint; pbAttr:String;var pcbAttrLen:longint):longint stdcall;external'MCSCM.DLL';
  Function MCardReadMemory( hMCard:longint; bMemZone:Byte; dwOffset:longint; pbReadBuffer:String;var pbReadLen:longint):longint stdcall;external'MCSCM.DLL';
Je ne suis vraiment pas sûr des bons types en paramètres!

Doc pour la DLL pour les procédures :
http://www.txsystems.com/downloads/M...ication1.9.pdf

Dans la doc, il donne bien des exemples, mais je ne vois pas très bien les types à 'traduire' en delphi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
McardReadMemory
 
/* hMCard is the handle obtained in the call to MCardInitialize */
LONG lReturn;
BYTE abyData [20];
DWORD dwLen = 20;
lReturn =
MCardReadMemory ( /* Reading 20 bytes from offset 0x80 in memory zone 0 */f
hMCard,
0,
0x80,
abyData,
&dwLen
);
L'initialisation de la carte se passe bien et me retourne un 0 pour me signaler que la carte est bien connectée!

Est-ce que quelqu'un pourrait m'aider?

Merci d'avance!