|
Problème d'appel de DLL Dallas |
Started by ldumoulin, Apr., 24 2006 7:48 PM - 2 replies |
| |
| | | |
|
| |
Posted on April, 24 2006 - 7:48 PM |
Bonjour à tous,
j'ai un petit problème de traduction sur un appel de DLL Dallas dont voici les sources d'origine :
long session_handle; unsigned char state_buffer[15360]; short result, cnt = 0; /* session_handle set from a call to TMExtendedStartSession */ ...
/* attempt to find the first device on 1-Wire network */ result = TMFirst(session_handle, state_buffer);
/* loop to count all of the devices on the 1-Wire network */ while (result > 0) { cnt++; /* find next device */ result = TMNext(session_handle, state_buffer); } /* close the session with a call to TMEndSession */ ...
mon problème est que je n'arrive pas a traduire en langage windev la déclaration de la variable State_Buffer, j'ai essayé en passant par une structure, par un buffer mais dans tous les cas la valeur retournée par l'appel de la DLL ne correspond à aucune valeur attendue .
Code WD 10 utilisé PROCEDURE StartSession()
ch est une chaîne //State_Buffer est un entier sans signe sur 1 octet = 15360 State_Buffer est un Buffer //sur 15360 SI VersionWindows() = "32" ALORS Port = 1 Tmsession = API(GDallasDll,"TMExtendedStartSession",Port,gnTypePort,Null) SI Tmsession = 0 ALORS Erreur("Problème d'ouverture de port !") Ferme SINON Res = Gauche(API(GDallasDll,"TMNext",Tmsession,State_Buffer),1)
Merci de votre aide |
| |
| |
| | | |
|
| | |
| |
Posted on April, 25 2006 - 10:51 AM |
En employant une chaine Asciiz sur 15360? En passant les paramètres par adresse en préfixant le nom de variable de &? |
| |
| |
| | | |
|
| | |
| |
Posted on April, 25 2006 - 10:51 AM |
Ta variable "State_Buffer est un Buffer" est vide quand tu appelles la fonction de ta dll...
il faudrait faire, je pense, soit
State_Buffer est un Buffer sur 15360 ou State_Buffer est tableau fixe de 15360 entier sans signe sur 1
bon dev eric l.
NEDSARL a écrit :
Bonjour à tous,
j'ai un petit problème de traduction sur un appel de DLL Dallas dont voici les sources d'origine :
long session_handle; unsigned char state_buffer[15360]; short result, cnt = 0; /* session_handle set from a call to TMExtendedStartSession */ ...
/* attempt to find the first device on 1-Wire network */ result = TMFirst(session_handle, state_buffer);
/* loop to count all of the devices on the 1-Wire network */ while (result > 0) { cnt++; /* find next device */ result = TMNext(session_handle, state_buffer); } /* close the session with a call to TMEndSession */ ...
mon problème est que je n'arrive pas a traduire en langage windev la déclaration de la variable State_Buffer, j'ai essayé en passant par une structure, par un buffer mais dans tous les cas la valeur retournée par l'appel de la DLL ne correspond à aucune valeur attendue .
Code WD 10 utilisé PROCEDURE StartSession()
ch est une chaîne //State_Buffer est un entier sans signe sur 1 octet = 15360 State_Buffer est un Buffer //sur 15360 SI VersionWindows() = "32" ALORS Port = 1 Tmsession = API(GDallasDll,"TMExtendedStartSession",Port,gnTypePort,Null) SI Tmsession = 0 ALORS Erreur("Problème d'ouverture de port !") Ferme SINON Res = Gauche(API(GDallasDll,"TMNext",Tmsession,State_Buffer),1)
Merci de votre aide
|
| |
| |
| | | |
|
| | | | |
| | |
|