![]() |
Cardreader auslesen mit CT-API
Hallo !
Ich arbeite derzeit an einem Programm, mit dem ich KVKs und eGKs auslesen muss. Von der Möglichkeit PC/SC verwenden zu können und somit komfortabel auf die Komponenten von Nobbi zurückgreifen zu können habe ich mich a.G. eines früheren Beitrags ( ![]() Derzeitiges Testgerät : Cherry 2052MKT+ CT-API : ctpcsc32kv.dll (Ist trotz "pcsc" im Namen lt. Cherry die korrekte CT-API-DLL) Die 3 Funktionen der CTAPI binde ich dynamisch ein als :
Delphi-Quellcode:
Dies funktioniert soweit auch. Sowohl CT_Init, als auch CT_Close geben 0=OK zurück. Type TFNCT_init = function(Ctn:Word; PN:Word):ShortInt;StdCall; TFNCT_data = function(Ctn:Word; Dad:Byte; SAD:Byte; Lc:Word; Cmd:Pointer; Lr:Word; Rsp:Pointer):ShortInt;StdCall; TFNCT_close = function(Ctn:Word):ShortInt;StdCall; Var CT_Init : TFNCT_Init; CT_Data : TFNCT_Data; CT_Close : TFNCT_Close; CT_Data bekomme ich aber einfach nicht zum laufen.
Delphi-Quellcode:
Ich erhalte entweder einen Zugriffsfehler in der DLL oder den Rückgabewert -1="Fehlerhafter Parameter oder Wert",je nachdem, ob ich für DAD den Wert "1" oder "0" setze...
function tKVKReader.ResetCT: ShortInt; {Aufruf aus anderer Funktion zwischen CT_Init und CT_Close ; CTN global def.}
Var command: Array of Byte; response: Array of Byte; DAD,SAD : Byte; LenRes, LenCmd : Word; begin SetLength(Command,5); command[0]:=$20; command[1]:=$11; command[2]:=$00; command[3]:=$00; command[4]:=$00; SetLength(Response,256); LenRes := Length(Response); LenCmd := Length(Command); DAD := $01; SAD := $02; Result := CT_Data(Ctn,DAD,SAD,LenCmd,Pointer(Command),LenRes,Pointer(response)); end; Irgendwie trete ich hier auf der Stelle. Hat jmd. Erfahrung mit der CT-API ? Gruß Guido R. |
AW: Cardreader auslesen mit CT-API
Versuch es mal mit Pointer(command[0]), ich meine da war etwas....?
Gruß K-H |
AW: Cardreader auslesen mit CT-API
Hallo K-H!
Geringfügige Verbesserung der Situation : Mit Deiner Änderung kommt immer -1="Fehlerhafter Parameter oder Wert" heraus. - Der Zugriffsfehler ist damit weg. Gruß Guido R. |
AW: Cardreader auslesen mit CT-API
Hallo,
versuche mal Pointer(response[0]) Grüße Klaus |
AW: Cardreader auslesen mit CT-API
Zitat:
Gruß K-H |
AW: Cardreader auslesen mit CT-API
Zitat:
Klaus |
AW: Cardreader auslesen mit CT-API
Ist es ! - Ohne ist der Zugriffsfehler wieder da !
Gruß Guido R. |
AW: Cardreader auslesen mit CT-API
Hallo,
wie ist denn CT_Data definiert Zitat:
Heiko |
AW: Cardreader auslesen mit CT-API
Zitat:
Delphi-Quellcode:
Grüße
Type
TFNCT_init = function(Ctn:Word; PN:Word):ShortInt;StdCall; TFNCT_data = function(Ctn:Word; Dad:Byte; SAD:Byte; Lc:Word; Cmd:Pointer; Lr:Word; Rsp:Pointer):ShortInt;StdCall; TFNCT_close = function(Ctn:Word):ShortInt;StdCall; Var CT_Init : TFNCT_Init; CT_Data : TFNCT_Data; CT_Close : TFNCT_Close; Klaus |
AW: Cardreader auslesen mit CT-API
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:42 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