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.
Encore Merci !
frobinet.
-------------------------------
Réponse au message :
-------------------------------
> 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.
>
> sinon sous MASM essaie:
>
lpPoints POINT 100 DUP(<>) > |
>
> tu peux aussi faire et ça marche:
>
PAINT_POLYGON STRUCT > dwPosition DWORD ? > bTypeDessin DWORD ? > dwNombrePoints DWORD ? > lpPoints BYTE (n * SIZE POINT) DUP(?) > flLargeur DWORD ? > dwCouleurTrait DWORD ? > dwCouleurFond DWORD ? > bTypeTrait DWORD ? > bTypeRemplissage DWORD ? > bSupprime DWORD ? > PAINT_POLYGON ENDS > |
>
> Ou
>
PAINT_POLYGON STRUCT > dwPosition DWORD ? > bTypeDessin DWORD ? > dwNombrePoints DWORD ? > lpPoints BYTE (n * 8) DUP(?) > flLargeur DWORD ? > dwCouleurTrait DWORD ? > dwCouleurFond DWORD ? > bTypeTrait DWORD ? > bTypeRemplissage DWORD ? > bSupprime DWORD ? > PAINT_POLYGON ENDS > |
>
> 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:
>
> Ce champ contient donc un pointeur sur la base du tableau dynamique.
>
>
Core Breaker 
>
>