IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

intégrer lecteur PC/SC (mifare) dans une application


Sujet :

WinDev

  1. #21
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    il s'agirait d'un tableau de caractères
    Attention : unsigned char response[300] n'est pas un tableau de chaine mais un tableau d'entier sans signe sur 1 octet
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  2. #22
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut
    aha ! intéressant la remarque !

    j'ai modifié le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    bufSendBuffer est Buffer = HexaVersBuffer("FF00480000")
    tabReceiveBuffer est un tableau de 10 entier sans signe sur 1 octet = []
     
    nLengthSend est entier = Taille(bufSendBuffer)
    nLenghtReceive est entier = Taille(bufSendBuffer)
     
    nCtn est entier = 1
    bufDad est Buffer = 1
    bufSad est Buffer = 2
     
    sRes est chaîne = ""
     
    sRes = AppelDLL32("ctacs.dll", "CT_data", nCtn, &bufDad, &bufSad, nLengthSend, &bufSendBuffer, &nLenghtReceive, &tabReceiveBuffer)
    ListeInsère(LISTE_Res,sRes)
     
     
    //print the return of 
    SI sRes = 0 ALORS
    	POUR i = 1 À tabReceiveBuffer..Occurrence
    		Trace(tabReceiveBuffer[i])
    	FIN
    FIN
    et j'obtiens ceci dans le trace :

    100
    00
    00
    00
    00
    00
    00
    00
    00
    00
    je suis censé obtenir : "41 43 52 31 32 32 55 32 31 34" équivalent à "ACR122U214"

    j'ai l'impression que ce "100" est l'adresse mémoire où je pourrais trouver la réponse...
    Mais je me trompe sans doute car je n'arrive pas à la trouver...
    J'ai essayé ChaineRécupère() et il me retourne "n".

  3. #23
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut
    pour compléter le post précédent, et suivant ta remarque @philouZ,
    en m'aidant de du fichier d'aide, j'ai corrigé tous mes types de variables (et mis le code en anglais c'est plus simple )

    mais le résultat est identique, sauf que au lieu d'avoir "100", j'ai "110" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    tabSendBuffer is array of 5 1-byte unsigned int = [0xFF,0x00,0x48,0x00,0x00]
    tabReceiveBuffer is array of 10 1-byte unsigned int = []
     
    nLengthSend is 2-byte unsigned int = tabSendBuffer..Occurrence
    nLenghtReceive is 2-byte unsigned int = tabReceiveBuffer..Occurrence
     
    nCtn is 2-byte unsigned int = 1
    nDad is 1-byte unsigned int = 1
    nSad is 1-byte unsigned int = 2
     
    nRes is 1-byte unsigned int = Null
     
    nRes = CallDLL32("ctacs.dll", "CT_data", nCtn, &nDad, &nSad, nLengthSend, &tabSendBuffer, &nLenghtReceive, &tabReceiveBuffer)
    ListInsert(LISTE_Res,nRes)
     
     
    //print the return of 
    IF nRes = 0 THEN
    	FOR i = 1 TO tabReceiveBuffer..Occurrence
    		Trace(tabReceiveBuffer[i])
    	END
    END
     
    Trace(StringRetrieve(&tabReceiveBuffer,srASCIIZAddress))
    EDIT : je constate aussi, que pour les 2 "buffer" c'est à dire les tableau d'entiers, si je ne transmets pas l'adresse (avec le &) j'ai une erreur dans la dll.
    hors, dans le fichier d'aide, ils ne transmettent pas l'adresse de ces 2 arguments...
    y a une incompréhension là ...

  4. #24
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Citation Envoyé par jjacques68 Voir le message
    dans le dossier SDK, y a un exemple en VB6, mais il utilise la dll windscard.dll (celle de windows).
    Ok, c'était juste pour regarder les types et les "transcoder" en W-langage.

    Petite question : je ne suis pas du tout un expert en c++, mais j'ai vu un unsigned char comme type et pas un unsigned int. Ce ne serait pas une chaîne qu'il faut utiliser ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  5. #25
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut
    nan justement c'est ce je faisais au départ...

    je le suis servi de ça pour me rappeler : https://c.developpez.com/faq/?page=Generalites

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/04/2016, 15h29
  2. Réponses: 13
    Dernier message: 31/03/2010, 10h35
  3. Réponses: 12
    Dernier message: 11/03/2010, 11h26
  4. [WPF]intégrer une page web dans une application
    Par sarapis dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 19/05/2007, 01h02
  5. [débutante]Intégrer flash dans une application java
    Par bouba83 dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 11/05/2006, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo