nombres 64 bits

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
hardy
Messages : 333
Inscription : mer. 02/juin/2004 13:19
Localisation : Tours

nombres 64 bits

Message par hardy »

Problème : la fonction API opentrace renvoit un INT64 (pas son adresse). Mais PB ne supporte pas les "doubles".
Qui sait comment faire?
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

va sur pureaera il y a une lib pour ça, il y a aussi un code de cédéravic sur le musée ou ici je crois
hardy
Messages : 333
Inscription : mer. 02/juin/2004 13:19
Localisation : Tours

Message par hardy »

La lib permet de manipuler des nombres 64 bits déclarés comme structure :
structure double
low.l
high.l
endstructure

Mais PB considère ça comme une structure, et n'accepte pas un truc du genre a.double=callfunction(...)
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

ah, ça je ne savais pas, je savais juste que ça existait
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

hardy a écrit :La lib permet de manipuler des nombres 64 bits déclarés comme structure :
structure double
low.l
high.l
endstructure

Mais PB considère ça comme une structure, et n'accepte pas un truc du genre a.double=callfunction(...)

Essaye ceci (on accède à la variable avec son 1er élément)

Code : Tout sélectionner

a.double\low = callfunction(...)

Si la dll renvoie une adresse, utilise ceci

Code : Tout sélectionner

*MemoryID = AllocateMemory(8)   ; tu réserve 8 octets en mémoire soit 64 bits
Tu récupère la valeur avec CopyMemory()

Code : Tout sélectionner

CopyMemory(callfunction(...), ]*MemoryID , 8) 

En espérant qu'une des solutions fonctionne.
hardy
Messages : 333
Inscription : mer. 02/juin/2004 13:19
Localisation : Tours

Message par hardy »

Non, elle ne renvoie pas d'adresse, sinon je n'aurait pas de problème.
Vais essayer a\low.
Sinon, Fred est dans le coin?
Faudrait savoir comment le callfunction marche.
Peut-être que l'on peut récupérer la valeur dans le registre (?)
hardy
Messages : 333
Inscription : mer. 02/juin/2004 13:19
Localisation : Tours

Message par hardy »

Oui, a\lowpart=... marche. Le prog doit donner l'adresse de la variable où mettre le résultat, et la dll copier ce qu'il faut à partir de là. D'où ... pas de problème :D :D :D

Merci bien.
Répondre