vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
lesen von TOWITOKO Chipdrive 
Autor: martin_d
Datum: 27.06.02 13:20

Ich habe folgendes Problem: Ich kann mit der angegebenen API-Funktion nicht von der Karte lesen. Die Funktion wird wie folgt deklariert

Declare Function SCardComand Lib "SCARD32.DLL" (Handle As Long,
ByVal Cmd As String, CmdLen As Long,
ByVal DataIn As String, DataInLen As Long,
ByVal DataOut As String, DataOutLen As Long
) As Long

Wobei folgende Technik im Hintergrund steht:

Response = SCardComand (Handle,
Cmd, CmdLen,
DataIn, DataInLen,
DataOut, DataOutLen
);

LPINT Handle /* Zeiger auf einen 32 Bit signed integer */
LPSTR Cmd /* Zeiger auf einen null terminierten String */
LPINT CmdLen /* Zeiger auf einen 32 Bit signed integer */
LPSTR DataIn /* Zeiger auf ein array of byte oder einen String */
LPINT DataInLen /* Zeiger auf einen 32 Bit signed integer */
LPSTR DataOut /* Zeiger auf ein array of byte oder einen String */
LPINT DataOutLen /* Zeiger auf einen 32 Bit signed integer */
INT Response /* 32 Bit signed integer */

Handle Falls mehrere Instanzen der DLL in einer Applikation benötigt werden, kann
dieses Handle benutzt werden, um entsprechende Objektinstanzen zu unterscheiden.
Der Wert kann auf null gesetzt werden, wenn nur eine Instanz benötigt
wird, der SCardServer übernimmt die Zuordnung dann über das Thread-
bzw. Taskhandle Ihrer Anwendung.

Cmd - SCardServer Kommando (nullterminierter String).
CmdLen - Bei verschlüsselter Kommunikation mit dem SCardServer die Länge des Kommandostrings,
bei unverschlüsselter Kommunikation muß Null übergeben werden.
DataIn - Zeiger auf den Puffer mit den Eingabedaten.
DataInLen - Länge der Eingabedaten.
DataOut - Zeiger auf den Puffer für die Ausgabedaten.
DataOutLen - Maximale Länge der Rückgabedaten, wird auf die tatsächliche Länge der Rückgabedaten
gesetzt.
Response - globaler Returncode, bei erfolgreicher Ausführung wird Null zurückgegeben.

Jetzt ist zum beispiel folgender befehl möglich, um die LED am Gerät anzuschalten:

Kommando: Str( "Device,SetLed,"" )
DataIn: nil
DataOut: nil

maximal 8 Zeichen, wobei folgende Farbzuordnung gilt:
"0" = aus, "1" = rot, "2" = grün, "3" = gelb.

Beispiel1: langsames rotes Blinken.
Kommando: Str( "Device,SetLed,0011" )
DataIn: nil
DataOut: nil

Beispiel2: grünes Dauersignal.
Kommando: Str( "Device,SetLed,2" )
DataIn: nil
DataOut: nil

Beispiel3: rot grün gelb blinken im Wechsel.
Kommando: Str( "Device,SetLed,123" )
DataIn: nil
DataOut: nil

Das funktioniert noch ganz gut. Aber zum eigentlichen Problem: Als befehl zum lesen der daten wird das angegeben:

Kommando: Str( "Card,MemRead,," )
DataIn: nil
DataOut:

Offset, ab dem gelesen werden soll (0 = erstes Byte des Kartenspeichers) .
Anzahl der zu lesenden Bytes.
gelesende Daten.

Beispiel: 21 Zeichen ab dem Offset 16 lesen.
Kommando: Str( "Card,MemRead,16,21" )
DataIn: nil
DataOut: 0x48 0x65 0x6C 0x6C 0x6F 0x20 0x53 0x6D 0x61 0x72
0x74 0x43 0x61 0x72 0x64 0x20 0x57 0x6F 0x72 0x6C
0x64 (String "Hello SmartCard World")

Demnach müsste ja die Response der Funktion "0" sein (ist auch so) und in "DataOut" der Karteninhalt ausgegeben werden. Nur wie komme ich da ran? Selbst wenn ich "DataOut" mit call by reference angebe, wir dort nichts verändert.
Ich brauch wirklich dringend (Zeitdruck) hilfe!!!

THX martin_d
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
lesen von TOWITOKO Chipdrive70martin_d27.06.02 13:20
ADD: lesen von TOWITOKO Chipdrive / Wie kann ich Michael Net...49martin_d29.06.02 16:57
Re: ADD: lesen von TOWITOKO Chipdrive / Wie kann ich Michael...48SPACE5TAR16.07.02 03:23

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel