Thema: Delphi Zugriff auf scardsyn.dll

Einzelnen Beitrag anzeigen

Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Zugriff auf scardsyn.dll

  Alt 21. Apr 2009, 09:47
Ich habe mir das SDK von OmniKey mal kurz angesehen...

Du hast die Wahl zwischen:
Delphi-Quellcode:
function SCardCLGetUID(ulHandleCard: SCARDHANDLE; pucUID: PByte; ulUIDBufLen: ULONG; out pulnByteUID: ULONG): TOKErr; stdcall;
function SCardCLGetUID(ulHandleCard: SCARDHANDLE; pucUID: PAnsiChar; ulUIDBufLen: ULONG; out pulnByteUID: ULONG): TOKErr; stdcall;
function SCardCLGetUID(ulHandleCard: SCARDHANDLE; out pucUID; ulUIDBufLen: ULONG; out pulnByteUID: ULONG): TOKErr; stdcall;
Je nachdem, wie du pucUID lesen/verwenden willst.
(OKERR/TOKErr = LongInt und ENTRY = stdcall)

'string' ist in Delphi 2009 ein Unicode-String (zwei Byte pro Zeichen). Du solltest also eher 'AnsiString' verwenden anstatt 'string'.

Wenn du die letzte Variante verwendest (untypisierter Ausgabeparameter), dann sollte die Verwendung so aussehen
Delphi-Quellcode:
UIDLen := 12;
SetLength(UID, UIDLen);
OkErr := SCardCLGetUID(hCard, UID[1], UIDLen, UIDLen);
if OkErr = 0 then
begin
  SetLength(UID, UIDLen);
  //...
end;
  Mit Zitat antworten Zitat