?
Ich habe hier ein Stück Code und komme damit nicht zurecht. Wie muß das für den CBuilder aussehen?
/* Beispiel zum Lesen einer Krankenversicherungskarte */
#inlcude <windows.h> /* plattformspezifisches */
#include <stdio.h>
#include "ct_api.h"
int main(void)
{
unsigned char sad, dad; /* source address, destination
address werden als Zeiger über
geben, um diese auch für die
Antwort auswerten zu können */
unsigned char response[300]; /* Feld für die Antwort der
Funktion */
unsigned char command[300]; /* Kommandos hier max. 300
Zeichen lang */
int i;
unsigned int lenr;
int ct_port = 2; /* Beispiel: COM 2 */
int ctn = 1; /* erstes Terminal */
/* logische Terminal Number und Port COM2 auswählen */
if(CT_init(ctn, ct_port) != OK) { /* Rückgabewert OK ? */
printf(“\nKartenleser nicht erreichbar. Port?”);
return(1); /* Programm beenden */
}
/* RESET CT */
sad = 2; /* source = Host (PC) */
dad = 1; /* destination = CardTerminal
(Kartenleser) */
lenr = sizeof(response); /* Maximale länge der Antwort
setzen */
command[0] = 0x20; /* CLA */
command[1] = 0x11; /* INS */
command[2] = 0x00; /* P1 */
command[3] = 0x00; /* P2 */
command[4] = 0x00; /* LEN */
/* Funktion CT_data aufrufen und Rückgabewert anzeigen */
printf("Reset CT Returnwert: %d\nSW1-SW2:", CT_data(ctn, &dad,
&sad, 5, command, &lenr, response));
/* Response ausgeben */
for(i=0;i<lenr;i++)
printf("%02x ",response[i]);
printf("\nBitte Karte einlegen und Taste drücken!\n");
getch();
/* RESET ICC */
sad = 2; /* source = Host (PC) */
dad = 1; /* destination = CardTerminal */
lenr = sizeof(response); /* Maximale Länge der Antwort */
command[0] = 0x20; /* CLA */
command[1] = 0x12; /* INS */
command[2] = 0x01; /* P1 */
command[3] = 0x01; /* P2 */
command[4] = 0x00; /* LEN */
printf("Reset ICC Returnwert:%d\nSW1-SW2:", CT_data(ctn, &dad,
&sad, 5, command, &lenr, response));
for(i=0;i<lenr;i++)
printf("%02x ",response[i]);
/* READ BINARY */
printf("\n\nKVK Daten:\n");
sad = 2; /* source = Host (PC) */
dad = 0; /* destination = Karte */
lenr = sizeof(response); /* maximale Länge der Antwort */
command[0] = 0x00; /* CLA */
command[1] = 0xb0; /* INS */
command[2] = 0x00; /* P1 */
command[3] = 0x00; /* P2 */
command[4] = 0x00; /* Le */
printf("Read Binary Returnwert:%d\nDaten:",CT_data(ctn, &dad,
&sad, 5, command, &lenr, response));
for(i=0;i<lenr;i++)
printf("%02x ",response[i]);
/* DEACTIVATE ICC */
sad = 2; /* source = HOST */
dad = 1; /* destination = CardTerminal */
lenr = sizeof(response); /* maximale Länge der Antwort */
command[0] = 0x20; /* CLA */
command[1] = 0x14; /* INS */
command[2] = 0x01; /* P1 */
command[3] = 0x00; /* P2 */
printf("\n\nDeactivate Returnwert:%d\nSW1-SW2:",CT_data(ctn,
&dad, &sad, 4, command, &lenr, response));
for(i=0;i<lenr;i++)
printf(" %02x ", response[i]);
/* Schnittstelle schließen */
printf("\nCT_close Returnwert:%d\n",CT_close(ctn));
printf("\nKarte entnehmen!");
return(0);
}
Danke Peter