Pointeurs avec matrice + VB

cs_kernel32 Messages postés 8 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 16 janvier 2006 - 30 sept. 2005 à 14:46
cs_kernel32 Messages postés 8 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 16 janvier 2006 - 30 sept. 2005 à 16:37
En fait j'ai fait un jeu en VB6, un puissance 4 (donc on a un plateau
de 7 en largeur sur 6 en hauteur). Je développe à côté une dll en C++
qui va me gérer mon IA. Donc à partir deVB je lance la fonction IA()
avec en parametres mon plateau de jeu, donc une matrice tel que
plateau(1 to 7,1 to 6). Donc comme on peut pas recupérer un tableau
direct en C++, je passe donc la premiere case du tableau en parametres
par adresse. Donc apres je recup ca avec un pointeur et le principe est
de parcourir les adresses memoires pour recuperer toutes les valeurs du
plateau de jeu. Je reussi a recuperer la plupar des valeurs, mais
certaines sont totalement erronées et font planter carrément le soft
VB...





Voici le code en C++ :



int _stdcall IA(int *ptr){

//déclaration des variables

int plateau[7][6],i,j,index=1,*adresse,k=0;

char buffer[4];

//récupération des valeurs du plateau

for(j=0;j<6;j++){

for(i=0;i<7;i++){

adresse=ptr+k;

k++;

plateau[i][j]=*adresse;

_itoa(plateau[i][j],buffer,10);

MessageBox(NULL,buffer,"Plateau - 0",MB_ICONINFORMATION);

}

}





/*Début de l'algo de choix du jeu*/



/*Fin de l'algo*/

//on retourne l'index où l'on joue

return index;

}

2 réponses

MNEMONIC Messages postés 59 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 1 septembre 2006
30 sept. 2005 à 16:22
Je suis pas sûr à 100%, mais il me semble qu'un int vb n'est pas sur 4 octets...
Je crois me souvenir qu'il est sur 2 octets...
0
cs_kernel32 Messages postés 8 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 16 janvier 2006
30 sept. 2005 à 16:37
bah en fait jai essayé 1 et 4

2 je sais plus si ca marche

je pense aussi que cest 2

mais jai vu 4 sur le net....

faut tester...
0
Rejoignez-nous