Attention : unsigned char response[300] n'est pas un tableau de chaine mais un tableau d'entier sans signe sur 1 octetil 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 octetil s'agirait d'un tableau de caractères
Philippe,
N'hésitez à lever le pouce si mon aide vous a été utile.
aha ! intéressant la remarque !
j'ai modifié le code :
et j'obtiens ceci dans le trace :
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
je suis censé obtenir : "41 43 52 31 32 32 55 32 31 34" équivalent à "ACR122U214"100
00
00
00
00
00
00
00
00
00
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".
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" :
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.
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))
hors, dans le fichier d'aide, ils ne transmettent pas l'adresse de ces 2 arguments...
y a une incompréhension là ...
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
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager