Scard Server
-
Tach Post.
Ich habe ein Problem. Ich möchte gerne ein Programm für das CHipDrive von Towitoko Programieren. Erstmal nix besonderes. Es soll nur nen Datenstring auf den Speicher schreiben und auch wieder auslesen können.
Ich habe nun die Dll datei , die mitgeliefert wurde wie folgt eingebunden
HINSTANCE hDll; hdll= LoadLibraby("Scard32.dll");
Die Funktion, die exportiert wird heis SCardComand. Ist wie folgt in der Header deklariert:
DWORD (__stdcal *SCardComand)(Variablen Typen, die auch korreckt sind );
Das Programm wird auch kompiliert jedoch wenn ich den Befehl Schreiben ausführen Möchte Passiert folgendes
Fehler Daten an Adresse 00000000 konnte nicht geschrieben werden oder an adresse 00000000 gelesen werden.Meine Frage nun: Ist die Dll richtig eingebunden, Was mach ich Falsch ?? Hat jemand schon mal ein ähnliches Problem gehabt oder hat jemand sogar ne Lösung ?
vieln Dank im voraus
blendo
[/cpp]
-
Mal ne andere Frage... willst du das unbedingt mit der dll machen?
von Towitoko gibts auch noch ne Toolbox, bei der ist sogar eine Delphi Komponente dabei. Die funzt wunderbar im cBuilder 5. Aber!! damit du keine Zugriffsverletztung bekommst, musst du unter Projekt->Optionen->Packages->Mit Verlaufspackage Kompilieren abklicken!!! Dies ist sehr wichtig... Wenn ich dies gewusst hätte, wären mir einige Tage Suchen erspart geblieben. Naja du musst aber selbst wissen ob du die dll oder die Komponente verwenden willst.
Die Komponente ist in einem pdf relativ gut beschriebenchewy
[ Dieser Beitrag wurde am 04.03.2003 um 22:42 Uhr von chewy editiert. ]
-
ist son doofes schul project, habe bis jetzt lesen und SystemInfo und sowas hinbekommen, nur kein schrieben, da bekomm ich jetzt ne andere Zugriffs verletzung, ich probiers mal mit deinem Tip.
schon mal Danke
-
Wo gibt es denn die Toolbox?
-
Hallo
Eine Google-Suche hätte gereicht um herauszufinden das die Toolbox-CD zu der Chipdrive-Hardware gehört. Und das die CD selber als kommerzielles Produkt nicht kostenlos verteilt werden darf.
bis bald
akari
-
Achso, Tschuldigung, habe zur toolbox nämlich nix gefunden.
Ich habe aber auf der Herstellerwebsite den Treiber und die Datei CTAPI.H gefunden und in den BCB6 inkludiert (#include "CTAPI.H"). Wie aber kann ich jetzt damit arbeiten? Wenn ich nen Button mache und als funktion
CT_init;
macht er keinen Fehler. Aber was für Argumente muss ich übergeben dass ich jedenfalls erkennen kann ob ne karte eingesteckt ist?
Hier der Code der H-Datei
/****************************************************************************/ /* */ /* Copyright 1995-2002 SCM Microsystems */ /* */ /* This software is supplied under the terms of a license */ /* agreement or nondisclosure agreement and may not be copied */ /* or disclosed except in accordance with the terms of that */ /* agreement. */ /* */ /****************************************************************************/ /* Name: CTAPI.H */ /* */ /* Description: Header file for CT-API DLLs */ /* */ /*--------------------------------------------------------------------------*/ /* History : */ /* Revision Date Author Description */ /* -----------------------------------------------------------------------*/ /* Version: 1.00: 22-Aug-1995 T.Maykranz Initial version for SwapSmart */ /* Version: 1.11: 25-JAN-1996 T.Maykranz CT-API version */ /* Version: 1.12: 20-JUN-1996 T.Maykranz *Lr handling corrected */ /* Version: 1.13: 25-JUN-1996 T.Maykranz memory model independant */ /* Version: 1.14: 23-SEP-1996 T.Maykranz CT-API from 20.09.96 */ /* Version: 1.15 08-JAN-1997, T.Maykranz 3A0,3C0 added */ /* Version: 1.16 16-JUN-2000, T.Maykranz CTAPI-PC/SC wrapper version */ /* Version: 1.17 12-SEP-2002, T.Maykranz cosmetics */ /****************************************************************************/ #ifndef CTAPIAPI #define CTAPIAPI #ifdef __cplusplus extern "C" { #endif /****************************************************************************/ /* return codes for CT_init, CT_data, CT_close: */ /****************************************************************************/ #define OK 0 /* Operation successful */ #define ERR_INVALID -1 /* parameter or data invalid */ #define ERR_CT -8 /* CT error (CT not ready) */ #define ERR_TRANS -10 /* transmission error */ #define ERR_MEMORY -11 /* error on allocate buffer */ #define ERR_HOST -127 /* abort by Host */ #define ERR_HTSI -128 /* HTSI error */ /****************************************************************************/ /* CT-API export functions: */ /****************************************************************************/ extern char WINAPI CT_init (unsigned short Ctn, /* logical terminal number */ unsigned short Pn); /* physical port number */ /* 0: auto detect */ /* 1: 1. reader */ /* 2: 2. reader */ /* 3: ... */ extern char WINAPI CT_close (unsigned short Ctn); /* logical terminal number */ extern char WINAPI CT_data (unsigned short Ctn, /* logical terminal number */ unsigned char FAR *Dad, /* destination address */ unsigned char FAR *Sad, /* source address */ unsigned short Lc, /* length of command in bytes */ unsigned char FAR *Cmd, /* command&data buffer */ unsigned short FAR *Lr, /* length of response in bytes */ unsigned char FAR *Rsp); /* answer */ /****************************************************************************/ #ifdef __cplusplus } #endif #endif
-
Hallo
Wenn du die Header gefunden hast wirst du sicher auch eine Dokumentation dazu finden, bzw. die Angaben in den Comments ausprobieren.
Allerdings bezweifle ich das dir die Header-datei alleine reicht :Description: Header file for CT-API DLLs
bis bald
akari
-
Das ist wieder eine typische Akari-Antwort, wenn er keine Lust hat zu helfen.
Die Tool Box gibt es nämlich nicht mehr und die verschieden threads hier zu dem Thema sind niemals gelöst worden.
-
Hallo
Also ich hab nur 1 Minute gebraucht um die Toolbox als Angebot zu finden...
Und ich bin mir auch sicher das auf so einer CD auch die komplette Dokumentation drauf ist.bis bald
akari
-
Danke für den Link,
ich habe es jetzt geschafft mich mit dem Leser zu verbinden (CT_init, siehe Header-Datei), da auch eine dll dabei war. Wie aber kann ich jetzt Daten lesen (CT_data (
,
,
) ?
-
Hallo, kann mir denn niemand helfen?
-
Hallo
Offenbar hat niemand hier schon mal diese Library benutzt. Schau also in die Doku oder auf die Homepage des Herstellers.
bis bald
akari
-
Hallo, habe jetzt dass hier gefunden:
http://www.heise.de/ix/artikel/2000/12/152/02.shtml
Die Befehle klappen, aber wie kann ich jetz Daten auslesen (bzw nur gucken ob ne Karte Steckt)?
-
Sorry, mein Programm (bzw der Quellcode vom Link ) gehen. Mein Kartenleser ist einfach nur kaputt.
Chipdrive
-
kannst Du mal was vom Code posten?
würde hier bestimmt noch mehr interessieren, die Frage war ja schon öfter.Gruß myerscola
-
Gerne, also hier ist "mein" Code:
#include "CTAPI.h" unsigned char ctn=0, dad, sad, cmd[261], rsp[258]; unsigned short lc, lr; int a; //--------------------------------------- /* Initialiserung der CT-API-Bibliothek */ CT_init( ctn, 0 ); dad = 01; sad = 02; /* Zurücksetzen*/ lr = sizeof( rsp ); a = CT_data( ctn, &dad, &sad, 4, (unsigned char*)"\x20\x11\x00\x00", &lr, rsp ); Label1->Caption = String(a); //Label1 = Fehlercode
Zum Daten lesen kann ich nichts sagen, da mein Leser defekt ist. Auf die Initialiserung antwortet er ganz normal, aber lesen, Rücksetzen etc geht nicht.
Deshalb: Guckt auf diese Seite