Salut kcc, c'est fait sous linux, donc c'est peut être pas pareil.
le principe est très simpliste :
Code : Tout sélectionner
Structure MyStruct
A.l
B.l
EndStructure
Macro DIM_(NAME,STRUCT,SIZE_X,SIZE_Y)
NAME = AllocateMemory(SIZE_X * SIZE_Y * SizeOf(STRUCT))
EndMacro
j'alloue de la mémoire, d'une taille de (X * Y)
le Sizeof() permet de prendre en compte la taille de la structure.
un tableau à 2 dimension de long d'une taille de 10,10 fait en mémoire 10*10*4 , 4 car un long fait 4 octets en mémoire.
soit 400 octets au final, ici ma structure fait 8 octets ( elle est composé de deux long )
donc 10*10*8 = 800 octets.
une fois l'espace mémoire alloué on devrait le testé pour evité les crash.
ensuite le plus "dur" c'est de se balader dans la zone mémoire pour écrire et recuperer des données :
Macro ADD_(NAME,STRUCT,SIZE_X,CHAMP,X,Y,VALUE)
PokeL(NAME + (X * SizeOf(STRUCT)) * SIZE_X * (Y*SizeOf(STRUCT))+(CHAMP*4) ,VALUE)
EndMacro
pour simplifier l'écriture :
*ZoneMemoire + ( X * SizeOf(STRUCT)) * Largeur_en_X * ( Y * SizeOf(STRUCT))
*ZoneMemoire est le pointeur vers ton espace mémoire alloué.
X & Y est la position dans la zone mémoire ( imagine un tableau à 2 dims )
Largeur_en_x est la taille en x de ton tableau ( le nombre d'éléments )
Voilà , le principe, exerce toi à faire des buffers d'écran avec des allocatememory() , tu verras , une fois compris , c'est très simple.