Hallo,
ich hab hier ein kleines C Programm und würde es gerne nach VB.Net bringen. Hier das Programm:
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include "ct_api.h"
#define MAXMEM 1000
HINSTANCE hDLL; CT_INIT CT_init; CT_DATA CT_data; CT_CLOSE CT_close;
int main(void)
{
unsigned char sad, dad; /* source/destination address,*/
/* als Byte deklariert */
unsigned char command[300]; /* Feld für Kommandotext mit max. 300 Zeichen Länge _
*/
unsigned char response [MAXMEM]; /* Feld für Antwort der Funktion hier: max _
1000 Zeichen */
unsigned short int ctn, lenr; /* card terminal number, Länge der Antwort */
char res; /* Funktions(rückgabe)wert */
ctn=1; /* Card Terminal 1*/
/* DLL laden und Funktionen zuweisen*/
hDLL = LoadLibrary("ctsct32.dll");
if (hDLL == NULL)
{
printf("Fehler");
return (2);
}/* falls DLL nicht geladen werden konnte, PRG beenden */
CT_init = (CT_INIT)GetProcAddress(hDLL,"CT_init");
CT_data = (CT_DATA)GetProcAddress(hDLL,"CT_data");
CT_close = (CT_CLOSE)GetProcAddress(hDLL,"CT_close");
/* logische Terminal-Nummer 1 und Port COM2 auswählen (herstellerabhängig!)*/
if (CT_init(1,1 ) != OK)
{
FreeLibrary(hDLL); /* DLL aus dem Speicher entfernen */
printf("fehler2");
return(1); /* falls Returncode von CT_init nicht OK, PRG beenden */
}
/* CT-Kommando REQUEST ICC (20 12 01 00 00 ) aufbauen und senden */
printf ("\nBitte Karte einlegen und eine Taste druecken!\n");
getch ();
sad=2; /* source = Host */
dad=1; /* destination = Card Terminal */
lenr=MAXMEM; /* maximale Länge der Antwort als Info an die Funktion */
command[0]=0x20; /* CLA */
command[1]=0x12; /* INS */
command[2]=0x01; /* P1 */
command[3]=0x00; /* P2 */
command[4]=0x00; /* Le */
/* Funktion (CT_data) aufrufen */
res=CT_data (ctn,&dad,&sad,5,command,&lenr,response);
/* Fehlerbehandlung hier nicht beschrieben */
/* ... */
/* nach Auswerfen der Karte mit CT-Kommando EJECT ICC */
printf("%s", res);
res=CT_close(ctn);
FreeLibrary (hDLL); /* DLL aus dem Speicher entfernen */
return(0);
} die ct_api.h:
#define OK 0
#define ERR_INVALID -1
#define ERR_CT -8
#define ERR_TRANS -10
#define ERR_MEMORY -11
#define ERR_HOST -127
#define ERR_HTSI -128
typedef CHAR (WINAPI *CT_INIT) (USHORT, USHORT);
typedef CHAR (WINAPI *CT_DATA) (USHORT, UCHAR*, UCHAR*, USHORT, UCHAR*, _
USHORT*, UCHAR*);
typedef CHAR (WINAPI *CT_CLOSE) (USHORT); Kann mir das jmd in VB.NET bringen, oder zumindes erklären, wie ich die dll in VB.Net benutze?
Danke |