frobinet
Messages postés64Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 décembre 2006
-
26 mai 2003 à 17:36
frobinet
Messages postés64Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 décembre 2006
-
28 mai 2003 à 11:05
Bonjour,
Je veux utiliser la fonction Polygon de GDI32.DLL
mais je ne sais pas comment redéfinir en assembleur
un type du style :
...
poly PAINT_POLYGON <>
index DWORD ?
valeurX DWORD ?
valeurY DWORD ?
...
mov ebx, dword ptr [index]
imul ebx, size POINT ; Calcul de l'offset à partir de l'index
lea esi, [poly].lpPoints ; Calcul de la base du tableau de structures POINT
mov esi, [esi][ebx] ; Accéder à la structure POINT voulue
; Accès aux champs de la structure POINT pointée par ESI
mov eax, [esi].x
mov [valeurX], eax
mov eax, [esi].y
mov [valeurY], eax
CoreBreaker
Messages postés540Date d'inscriptiondimanche 23 mars 2003StatutMembreDernière intervention 5 octobre 20071 27 mai 2003 à 19:02
Ah je comprends mieux.
Je ne savais pas que que tu utilisais MASM (désolé)
Je t'ai fourni du code TASM et le dup(?) fonctionne sous TASM vois si tu peux utiliser TASM32 à la place.
Il faut bien comprendre que tu ne peux pas contruire une structure dans laquelle tu as exactement dwNombrePoints sutructures POINT pour laquelle la valeur dwNombrePoints est changeante car une structure a une taille statique et ne peut donc pas avoir une taille en fonction de la valeur dwNombrePoints qui est dynamique et donc déterminée à l'exécution de ton programme. Sinon il te faut faire une allocation dynamique d'un tableau de dwNombrePoints sutructures POINT et donc la structure que je t'ai donnée est parfaitement adaptée c'est à dire avec:
lpPoints DWORD ?
Ce champ contient donc un pointeur sur la base du tableau dynamique.
frobinet
Messages postés64Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 décembre 2006 28 mai 2003 à 11:05
Bonjour,
Merci ! je n'avais pas encore compris la subtilité
de DUP !
lpPoints POINT 100 DUP(<>)
Pour le MASM32, je l'ai pris parce que je débute en assembleur 32 et c'est celui-que j'ai trouvé le premier.
Il est facile d'installation et est fournis avec des exemples
de difficultés variables assez interessantes.