![]() |
TSmartCard für Delphi 2010
Hallo #,
bei der Umstellung eines D7-Programmes habe ich ein Problem. Das Programm verwendet die Komponente TSmartCard. Ich habe jetzt die Pas-Quellen (scardcmp.inc) von String auf AnsiString, PChar PAnsiChar geändert. Trotzdem stürzt das Programm beim Beenden des Forms, welches die TSmartCard verwendet ab. Es scheint also doch noch Probleme zu geben. Bei Towotoko finde ich keine D2010 kompatible Version ... ;( Was nun ? Schon mal im voraus Danke für Anregungen/Hilfe. Heiko |
AW: TSmartCard für Delphi 2010
Und sonst funktioniert alles?!
Ich hab nämlich für D2009 u.a. noch folgende Funktionen angepasst:
Delphi-Quellcode:
Vergleichs mal mit deinen :-D Aber ob's daran liegt weiß ich natürlich nicht ...
function TSmartCard.ComandStr(const Cmd,DataIn: AnsiString): AnsiString;
begin if DataIn = '' then begin SetLength(Result, 255); SetLength(Result, Comand(Cmd,nil,0,@Result[1], Length(Result))); end else begin SetLength(Result, 255); SetLength(Result, Comand(Cmd,@DataIn[1],Length(DataIn),@Result[1], Length(Result))); end; end; function TSmartCard.Comand(const Cmd: AnsiString; DataIn: Pointer; DataInLen: LongInt; DataOut: Pointer; DataOutMax: LongInt ): LongInt; var R,L,M: LongInt; C: AnsiString; begin try Result:=DataOutMax; if not FActive then Error('SmartCard component not activated'); L:=Length(Cmd); if L = 0 then R:=FSCardComand(FTDevHandle,nil,L, DataIn,DataInLen,DataOut,Result) else R:=FSCardComand(FTDevHandle,@Cmd[1],L, DataIn,DataInLen,DataOut,Result); if R > 0 then begin Result:=0; C:=cmSystem+cmInfo+cmErrText; L:=Length(C); M:=0; SetLength(FError, 255); R:=Length(FError); FSCardComand(FTDevHandle,@C[1],L,nil,M,@FError[1],R); SetLength(FError, R); Error(FError); end; except Result:=0; if not (csDesigning in ComponentState) then raise; end; end; |
AW: TSmartCard für Delphi 2010
Hallo,
oh ein Gleichgesinnter. Habe das jetzt geändert. Leider funktioniert es immer noch ;( Beim Beenden schmiert das Formular ab. Kannst du mir deine Inc-datei mal per PN geben ? Danke Heiko |
AW: TSmartCard für Delphi 2010
Hallo,
erledigt !!! Musste die Komponente neuinstallieren. 1000 Dank ;) Heiko |
AW: TSmartCard für Delphi 2010
Hallo,
zu früh gefreut ;( Ist kein Lesegerät angeschlossen, stürzt das Programm nach dem Form-Beenden ab. Allerdings nicht in der Debug- sondern nur in der Release-Version. Ich erzeuge die Komponente jetzt dynamisch und gebe sie erst mal nicht frei ;) Heiko |
AW: TSmartCard für Delphi 2010
Mh, ich hatte auch mal ein Problem mit nicht angeschlossenem Kartenleser ... ich glaube das war, weil ich auf DeviceList zugegriffen habe, obwohl Active auf false stand - glaube ich :gruebel:
Vlt. greifst du auch auf etwas zu, was nicht existiert?! |
AW: TSmartCard für Delphi 2010
Hallo,
Das letzte FreeLibrary in SetActive ist der Schuldige. Das habe ich jetzt ausgeklammert und werde mir das später ansehen. Heiko |
AW: TSmartCard für Delphi 2010
AFAICR hatte ich vor zwei Jahren dasselbe Problem mit einem ähnlichen Workaround.
|
AW: TSmartCard für Delphi 2010
Hallo. Ich suche mir seit Wochen schon die Finger wund, weil ich genau das selbe Problem habe. Setze mehrere SCR335 ein und nutzte bisher TSmartCard. Nun setze ich Delphi XE ein und bekomme es nicht gebacken :roll:
Kann mir vielleicht jemand einen Link (oder auch gerne per Mail) posten, wo ich mir mal eine funktionierende Version ziehen kann? Wäre echt supermega..! Tks vorab.. Schorsch |
AW: TSmartCard für Delphi 2010
Nochmal ich,
ich habe jetzt mal versucht die Kompo umzustellen, wie hier weiter oben beschrieben. Aber in der function: SetActive - meckert er mir folgende Zeilen an: if FileSearch(StrPas(@DllFile[1]), ExtractFilePath(ParamStr(0))+'\;'+S+';'+T) <> '' then (Doppeldeutiger oder überladener Aufruf von "StrPas") .. Error('Invalid/missing SmartCard library '+StrPas(@DllFile[1])+ ' (Error code '+IntToStr(FLibHandle)+')'+#13#10+ 'Pls. download latest version at: ![]() (Doppeldeutiger oder überladener Aufruf von "StrPas") .. Error('Invalid SmartCard library '+StrPas(@DllFile[1])+ ' (version mismatch)'+#13#10+ 'Pls. download latest version at: ![]() (Doppeldeutiger oder überladener Aufruf von "StrPas") Hat da vielleicht jemand ne Idee? Obwohl ne aktuelle, lauffähige Kompo wäre natürlich was ;-) Tks vorab und schönes Restwochenende.. Schorsch |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 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