Towitoko Chip-Drive Kartenlesegerät mit C++ ansprechen/auslesen



  • Hallo,

    habe mal wieder ein Problem.
    Muss von einem Towitoko Chip-Drive Kartenlesegerät Daten auslesen von Chip-Karten, kann mir da jemand weiterhelfen?
    Danke im vorraus.

    MfG
    MWJK



  • Hallo

    schau in der Dokumentation des Herstellers nach.

    bis bald
    akari



  • Hey,
    sorry, hatte die Dokumentation übersehen.
    Danke für die schnelle antwort.

    MWJK



  • MWJK schrieb:

    Hey,
    sorry, hatte die Dokumentation übersehen.
    Danke für die schnelle antwort.

    MWJK

    Hmm... habe gerade die Dokumentation durchgesehen und bemerkt, dass keine einbindung in c++ beschrieben wird, kann mir denn jemand einen Tipp geben, was ich nun machen kann?
    Danke.

    MWJK



  • Hallo

    Gegenfrage : welche Einbindungen für welche Sprachen/Frameworks werden denn beschrieben? Direkt etwas für C++ oder gar VCL ist nicht zu erwartetn, eher was für C und/oder WinAPI.

    bis bald
    akari



  • akari schrieb:

    Hallo

    Gegenfrage : welche Einbindungen für welche Sprachen/Frameworks werden denn beschrieben? Direkt etwas für C++ oder gar VCL ist nicht zu erwartetn, eher was für C und/oder WinAPI.

    bis bald
    akari

    Beschrieben sind PASCAL/DELPHI, C und Visual Basic 4/5 und Access/VBA.

    Leider ist C++ das einzige was ich bis jetzt lerne.

    bis bald
    MWJK



  • Hallo

    Dann must du die C-Schnittstelle benutzen. Das ist nicht weiter schlimm, denn der Compiler des Builders beherscht auch C. Du wirst dich nur etwas umstellen müßen, da in C mehr manuelle Arbeit und Kontrolle notwendig ist (Stichwort C-Strings).

    /Edit : Also du must nun dein komplettes Programm nicht in C schreiben. Sondern du bindest die C-Schnittstelle (Header includen, Lib in das Projekt einfügen) in dein Builder-Projekt ein, und darfst die dazugekommenen Funktionen eben nur mit C-Typen ansprechen. Auf deiner Seite kannst du natürlich weiterhin gewohnte Typen ein setzen.

    bis bald
    akari



  • also muss ich einfach die einbundung unter C verwenden und mein Compiler kann das so auch?

    bis bald MWJK



  • Hallo

    Edit wahr wohl zu spät, also lies nochmal meinen letzten Post.

    bis bald
    akari



  • Hallo,

    habe deinen Post nochmal gelesen und versucht und gesucht ...
    allerdings weiss ich nicht ganz, welche header ich dann einbinden soll, kannst du mir vielleicht sagen, wie die heisst?

    Danke.

    bis bald
    MWJK



  • Hallo

    da ich weder Gerät noch Doku kenne, kann ich dir keine Details sagen. Aber die notwendigen Header sollten genauso in der Doku stehen wie die dort drin enthaltetenen Funktionen. Eventuell ist auch ein Minimal-Beispiel dabei.

    bis bald
    akari



  • Okay,

    ich danke dir nochmal für die schnelle Hilfe.

    bis bald
    MWJK



  • Hallo,

    zu TOWITOKO gabs mal eine Toolbox von Towitoko, bei der eine VCL-Komponete integriert war (Source in Pascal). Die VCL-Komonente konnte auch in CBuilder 6 einfach installiert und benutzt werden.



  • FireBirdSQL schrieb:

    Hallo,

    zu TOWITOKO gabs mal eine Toolbox von Towitoko, bei der eine VCL-Komponete integriert war (Source in Pascal). Die VCL-Komonente konnte auch in CBuilder 6 einfach installiert und benutzt werden.

    Hallo,

    die besagte Toolbox habe ich auch, habe auch einen "VC"-Ordner gesehen, wo auch eine einbauanleitung für PASCAL/DELPHI, C und Visual Basic 4/5 bzw. Access/VBA drin war, sowie eine Readme.txt - Datei. Desweiteren zwei Ordner "vc5" und "vc6" (die wahrscheinlich auf cbuilder5 und cbuilder6 hinweisen) und einen "Include"-Ordner.

    Habe das ganze auch mittlerweile eingebaut, bekomme im Compiler allerdings noch einen Fehler, wo ich nicht genau weiss, wie ich damit um zu gehen habe:

    "Undefiniertes Symbol 'CString'", sowie "Undefiniertes Symbol 'text'" ...

    CString wird folgendermaßen verwendet:

    CString text;
    

    und text so:

    text.Format("System,Info liefert %d und %s",ret,DataOut);
    

    bis bald
    MWJK



  • Hallo

    Desweiteren zwei Ordner "vc5" und "vc6" (die wahrscheinlich auf cbuilder5 und cbuilder6 hinweisen)

    Nein VC ist Visual Studio von Microsoft.
    Und CString ist eine Klasse aus der MFC, die es nur bei dem Visual Studio gibt. Das kannst du niemals mit dem Builder kompilieren.

    bis bald
    akari



  • Hmm...
    also, habe das bislang so:

    HINSTANCE hDll;
    long (__stdcall * SCardComand)(long *handle, char *Cmd, long *CmdLen,
                                   char *DataIn, long *DataInLen,
                                   char *DataOut, long *DataOutLen);
    long CmdLen,DataInLen,DataOutLen;
    char *Cmd,*DataIn,*DataOut;
    
    void test()
    {
      hDll = LoadLibrary("scard32.dll");
      if (hDll != NULL)
      {
        SCardComand = (long (__stdcall * )(long *handle, char *Cmd,
                                           long *CmdLen, char *DataIn,
                                           long *DataInLen, char *DataOut,
                                           long *DataOutLen))
        GetProcAddress(hDll,"SCardComand");
        Cmd = (char*)malloc(255);
        DataIn = (char*)malloc(255);
        DataOut = (char*)malloc(255);
        long ret;
    
        strcpy(Cmd,"System,Info");
        strcpy(DataIn,"");
        strcpy(DataOut,"");
        CmdLen = 11;
        DataInLen = 0;
        DataOutLen = 254;
        long handle = 0;
    
        ret = SCardComand(&handle,Cmd,&CmdLen,DataIn,&DataInLen,DataOut,&DataOutLen);
    
        CString text;
        text.Format("System,Info liefert %d und %s",ret,DataOut);
        MessageBox(NULL,text,text,MB_APPLMODAL);
      }
    

    Kann mir denn jemand sagen, was ich anstatt CString sonst nehmen kann? der Rest sollte - meines Wissens nach - doch eigentlich stimmen?

    Thx

    MWJK



  • Hallo

    Eine beliebige Zeichenkettenverarbeitung. Da wären AnsiString, std::string, char*...
    Das betrifft ja auch nur die Ausgabe, keine relevanten Zugriffe. Du kannst die Ausgabe zusammenbauen wie du willst.

    bis bald
    akari



  • akari schrieb:

    Hallo

    Eine beliebige Zeichenkettenverarbeitung. Da wären AnsiString, std::string, char*...
    Das betrifft ja auch nur die Ausgabe, keine relevanten Zugriffe. Du kannst die Ausgabe zusammenbauen wie du willst.

    bis bald
    akari

    Okay, danke.
    Nachdem ich CString nun in char* geändert habe, muss ich da noch etwas bestimmtes beachten?

    Gruß
    MWJK



  • Hallo

    Ja, das du den C-String ordentlich behandelst (Speicher reservieren, Funktionen mit Maximal-Größen verwenden, Speicher danach wieder freigeben). Eben das was zu den C-Grundkenntnissen gehört.

    bis bald
    akari



  • Hallo

    die VCL-Komponente installiert sich folgendermaßen.

    Erstelle ein neues VCL Package (Projekt -> Neu ...)
    Füge die Dateien Scardc32.pas ind Scardc32.dcr hinzu
    Kompiliere und installiere das Package

    Danach ist eine Komponente TSmartCard installiert 😃 .
    Das funktioniert mit cb6 und bds2006

    Vierl Erfolg



  • FireBirdSQL schrieb:

    Das funktioniert mit cb6 und bds2006

    Hallo,

    Hab aber nur cb5, weisst du, obs da auch geht? ich werds auf jeden fall mal ausprobieren, danke für den tipp!

    Gruß
    MWJK


Anmelden zum Antworten