Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TSmartCard für Delphi 2010 (https://www.delphipraxis.net/160217-tsmartcard-fuer-delphi-2010-a.html)

Deep-Sea 9. Mai 2011 08:42

AW: TSmartCard für Delphi 2010
 
Die DLL-Suche habe ich ebenfalls überarbeitet und überlasse nun LoadLibrary die Arbeit. Aber gut, auch ohne das sollte es ja gehen.
Versuch mal, den Wert vor der Übergabe an StrPas als PAnsiChar zu casten:
Delphi-Quellcode:
StrPas(PAnsiChar(@DllFile[1]))
:-D

ConnorMcLeod 9. Mai 2011 09:27

AW: TSmartCard für Delphi 2010
 
Liste der Anhänge anzeigen (Anzahl: 1)
Habe mal auf meiner Festplatte gekramt und die Datei im Anhang gefunden. Hilft das?
Bei diesem Link gibt es im SDK viele Codebeispiele (leider keine Delphisourcen, aber immerhin etwas).

schorsch666 9. Mai 2011 09:33

AW: TSmartCard für Delphi 2010
 
Hi und Danke erstmal,
habs jetzt kompilieren können. Hab jetzt eine SCARDCMP.INC - aber habe leider keine Ahnung, wie ich das Teil jetzt einbinden muss/zum Laufen bekomme.

Könntest du mir da weiterhelfen?

Wäre super..

Schorsch

schorsch666 9. Mai 2011 09:35

AW: TSmartCard für Delphi 2010
 
Uups - eben erst gesehen, dass da noch was kam. Habe mir mal downgeloadet und schaue es mir direkt mal an.

Supi - Danke erstmal - ich winke wieder..

Schorsch

schorsch666 9. Mai 2011 10:40

AW: TSmartCard für Delphi 2010
 
Hallo nochmal,
ich verzweifle bald :pale:

Ich habe jetzt die Kompo zum Laufen gebracht und ein kleines Testprogramm erstellt. Wenn ich das jetzt starte und dann die Kompo auf active setze kommt "..missing SCARD32.DLL". Ich also die aktuellen Treiber runtergeladen und installiert - alles fehlerfrei. Die DLL stellte er mir jetzt nach Windows\SysWOW64. Fehler kam immernoch. Also ich diese in dem Verz per regsvr32 scard32.dll versucht zu registrieren, doch dann kommt ".. Modul wurde geladen der DllRegisterServer-Eingangspunkt wurde nicht gefunden. Stellen Sie sicher, blabla".

Könnt ihr euch vorstellen woran das liegt?

Danke..

Schorsch

Deep-Sea 9. Mai 2011 10:57

AW: TSmartCard für Delphi 2010
 
Pack mal die DLL in das Verzeichnis, in dem deine Anwendung liegt ...

schorsch666 9. Mai 2011 11:18

AW: TSmartCard für Delphi 2010
 
hab ich gemacht - geht trotzdem nicht :-(

Deep-Sea 9. Mai 2011 12:29

AW: TSmartCard für Delphi 2010
 
Immer noch der gleiche Fehler, dass er die DLL nicht finden kann? Mh, wie gesagt, das mir der Suche nach der DLL habe ich ebenfalls geändert - sicher nicht ohne Grund, aber welcher das war, weiß ich auch nicht mehr.

schorsch666 9. Mai 2011 13:22

AW: TSmartCard für Delphi 2010
 
Nee - klappt immernoch nicht :roll: Vielleicht fällt dir (oder jemand anderem) ja doch nochwas ein.

Wäre super..

Tks trotzdem schonmal..

Schorsch

Deep-Sea 9. Mai 2011 13:34

AW: TSmartCard für Delphi 2010
 
Ja was hast du denn geändert?
Bei mir sieht SetActive so aus, wobei die Konstante DllFile vor meiner Änderung DllFile32 oder so ähnlich hieß:
Delphi-Quellcode:
procedure TSmartCard.SetActive(Value: Boolean);
var
  C,L,I: LongInt;
  S: AnsiString;
begin
  if Value = FActive then exit;
  try  SetCursor (LoadCursor (0, IDC_WAIT));

  if Value then begin
    if FLibHandle > 0 then FreeLibrary(FLibHandle);
    FLibHandle:=2;
    FLibHandle:=LoadLibrary(DllFile);
    if FLibHandle < HINSTANCE_ERROR then
      Error('Invalid/missing SmartCard library '+ DllFile +
            ' (Error code '+IntToStr(FLibHandle)+')'+#13#10+
            'Pls. download latest version at: http://www.towitoko.de');
    {$IFDEF SCARDDIR}
    FSCardComand:=SCardComand;
    {$ELSE}
    @FSCardComand:=GetProcAddress(FLibHandle, 'SCardComand');
    {$ENDIF}
    if not Assigned(FSCardComand) then begin
      FreeLibrary(FLibHandle);
      FLibHandle:=0;
      Error('Invalid SmartCard library '+StrPas(PAnsiChar(@DllFile[1]))+
            ' (version mismatch)'+#13#10+
            'Pls. download latest version at: http://www.towitoko.de');
    end;
    FTDevHandle:=0;
    L:=-1; C:=0;
    S:=cmSystem+cmAddHWndMsg+
       IntToStr(FWindowHandle)+','+IntToStr(TDEVMSG)+#0;
    I:=FSCardComand(L,@S[1],C,nil,C,nil,C);
    if (I > 0) or (L <= 0) then begin
      FreeLibrary(FLibHandle);
      FLibHandle:=0;
      Error('Cannot access SmartCard Server: '+IntToHex(I,4));
    end;
    FTDevHandle:=L;
    FActive:=True;
    GetDeviceList;
    InsertMenuItems;
  end else begin
    try Comand(cmSystem+cmDelHWnd+IntToStr(FWindowHandle),nil,0,nil,0); except end;
    try Comand(cmSystem+cmDestroy,nil,0,nil,0); except end;
    FreeLibrary(FLibHandle);
    FLibHandle:=0;
    FActive:=False;
  end;
  finally Screen.Cursor:=crDefault; end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz