AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Cardreader auslesen mit CT-API
Thema durchsuchen
Ansicht
Themen-Optionen

Cardreader auslesen mit CT-API

Ein Thema von Guido R. · begonnen am 10. Jun 2011 · letzter Beitrag vom 16. Apr 2012
Antwort Antwort
Benutzerbild von Guido R.
Guido R.

Registriert seit: 5. Jul 2007
141 Beiträge
 
Delphi 12 Athens
 
#1

AW: Cardreader auslesen mit CT-API

  Alt 15. Jun 2011, 10:29
GESCHAFFT !

Kurz gesagt : Die Definition der CT-API nach Teletrust ist falsch (oder zumindest sehr unklar definiert).
LENR (s. vorherigen Beitrag) MUSS ein Pointer auf eine Word-Variable sein, da CT_Data in diesen Wert die eigentliche Länge der Antwort schreibt.

Somit ist eine funktionierende Definition für CT_Data wie folgt:

function(Ctn:Word; Dad:PByte; SAD:PByte; Lc:Word; Cmd:Pointer; Lr:Pointer; Rsp:Pointer):ShortInt;StdCall;

Gruß
Guido R.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#2

AW: Cardreader auslesen mit CT-API

  Alt 16. Apr 2012, 21:39
GESCHAFFT !

Kurz gesagt : Die Definition der CT-API nach Teletrust ist falsch (oder zumindest sehr unklar definiert).
Warum? Klaus hatte doch den Prototypen geliefert:

Ich korrigiere mal den Lapsus mit der Aufrufkonvention:
Code:
char (*__stdcall CT_DATA) (USHORT, UCHAR*, UCHAR*, USHORT, UCHAR*, USHORT*, CHAR*);
Jetzt deine Version:

function(Ctn:Word; Dad:PByte; SAD:PByte; Lc:Word; Cmd:Pointer; Lr:Pointer; Rsp:Pointer):ShortInt;StdCall;
... und jetzt meine etwas mehr delphianisierte Version:

TFNCData = function(ctn: Word; var dad: Byte; var sad: Byte; lenc: Word; command: ^Byte; var lenr: Word; response: ^Byte): Byte; stdcall; Bei "dad" und "sad" scheint es sich ja nur um einen einzelnen 8bit-Wert zu handeln, während mit "response" und "command" jeweils ein Delphi-Referenz durchsuchenarray gemeint ist. Ich nehme mal an jemand der hier in den letzten Jahren Delphi benutzt hat kann das noch verfeinern (bspw. einen passenderen Typen als ^Byte).

Man merkt gleich daß das aus deutschen Landen kommt ... ... man könnte ja mindestens mal die C-Prototypen in den PDFs angeben oder am besten gleich einen normalen Header. Grausam sowas ...
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz