Thema: WinSCard.dll

Einzelnen Beitrag anzeigen

Dr.MAD

Registriert seit: 16. Jan 2006
18 Beiträge
 
#1

WinSCard.dll

  Alt 13. Mär 2011, 18:39
Hallo,

ich bekomm aus der Funktion SCardListReadersA keinen String heraus.

SmartCard-Leser ist angeschlossen und der Rückgabewert Size = 54 bei mir stimmt schon mal.

Könnte mir jemand weiterhelfen?

Delphi-Quellcode:
type
  SCARDCONTEXT = ULONG_PTR; // Cardinal
  PSCARDCONTEXT = ^SCARDCONTEXT;
  LPSCARDCONTEXT = ^SCARDCONTEXT;


  function SCardListReadersA(hContext: SCARDCONTEXT; mszGroups: LPCSTR; out mszReaders: LPSTR; out pcchReaders: LPDWORD): ULONG; stdcall; external 'Winscard.dll';


...



procedure TForm1.Button1Click(Sender: TObject);
var ret, Size: Cardinal;
    mszReaders: PAnsiChar;
    pcchReaders: PDWORD;
    Readers: String;
begin

  ret:=SCardListReadersA(0, 0, mszReaders, pcchReaders);
  Size:=DWORD(pcchReaders);
  SetString(Readers, mszReaders, Size);

  Memo1.Lines.Add('Ret: '+IntToStr(ret));
  Memo1.Lines.Add('Size: '+IntToStr(Size));
  Memo1.Lines.Add('Readers: '+Readers);

end;
OS: Win7 x64

Die Funktion sollte alle angeschlossenen SmartCard-Leser auflisten (z.B. von Chipdrive (SCM Microsystems)).
Matthias

Geändert von Dr.MAD (13. Mär 2011 um 18:53 Uhr)
  Mit Zitat antworten Zitat