Page 1 sur 1

Passer un tableau purebasic à une DLL écrite en C

Publié : jeu. 20/mars/2008 20:42
par Kalyptus
Yop tout le monde,
Je développe des bots sensés tourner sur un système de tchat en 3D appelé ActiveWorlds, et la SDK fournie est, à la base, faite pour être utilisée en langage C. Mais un habitué d'ActiveWorlds, administrateur de plusieurs univers, à créé un wrapper pour utiliser cette SDK avec PureBasic, il a donc adapté toutes les fonctions C vers des fonctions PB, dans un fichier .pb à inclure pour chaque développement de bot.
BREF tout va bien, sauf que je me suis retrouvé avec une fonction qui ne fonctionne pas après traduction, en C elle donne :

Code : Tout sélectionner

aw_query (int x, int y , int tableau [3] [3]);
Et demande donc en paramètres deux entiers (aucun problème), puis un tableau en 2 dimensions de 3 colonnes et 3 rangées, contenant des infos recoltées, au cours de l'exécution de la fonction, dans le monde en 3D. Enfin les détails importent peu, le fait est qu'il est impossible, pour PB, de récuperrer le tableau comme ça :

Code : Tout sélectionner

aw_query(0,0,sequence)
0 et 0 étant les entiers, sequence étant un Dim déclaré et rempli de 0 comme ceci :

Code : Tout sélectionner

Global Dim sequence.l(3,3)

For i = 0 To 2
  For j = 0 To 2
    sequence(i,j) = 0
  Next
Next
Ca ne marche pas, car il faut transmettre un entier :/

Bref, avez vous une idée de comment résoudre ce problème ?

Merci d'avance, a+

Publié : jeu. 20/mars/2008 22:12
par comtois
essaye en donnant l'adresse de ton tableau ? Sequence()

Publié : jeu. 20/mars/2008 22:26
par Anonyme
en c , je ferais comme cela :

Code : Tout sélectionner

void PasseTab( int *Tab){
/*code*/

*Tab + x*sizeof(int) + TailleTabX * y*sizeof(int) = se que tu veut.

x & y , position dans le tableau.


} 

Un pointeur est toujours en int * , peut importe se qui passe , du moment que le traitement dans la fonction est bonne.

Publié : sam. 22/mars/2008 6:26
par Thyphoon
Tient Active World ça existe toujours ? Dire que c'est là que j'ai rencontré ma femme il y a déjà 7 ans... La communauté francophone était super sympa au début puis ça commencé a dégénérer... ça fait une eternité que j'y ai pas mis les pieds :P

Publié : dim. 23/mars/2008 0:46
par Kalyptus
Eh oui on existe toujours^^ Enfin on est une communauté un peu "en marge" de AW, on est plus ou moins indépendants d'eux...
D'ailleurs, si j'ose un coup de pub : http://3d.levillage.org, vous y verez plusieurs bots en PureBasic^^

Publié : dim. 23/mars/2008 1:14
par Backup
et les gens paye pour ça ? 8O

Publié : dim. 23/mars/2008 1:22
par Chris
Dobro a écrit :et les gens paye pour ça ? 8O


:lol:

Publié : dim. 23/mars/2008 6:51
par Thyphoon
Dobro a écrit :et les gens paye pour ça ? 8O
j'en sais rien de mon temps c'était gratuit.. et c'était surtout amusant...du même genre que 3D constructions kits (si tu connais)

Publié : lun. 24/mars/2008 1:07
par Kalyptus
Rien n'empêche de ne pas payer, ça s'appelle un "touriste"... Et on y va pour l'ambiance, pas pour la technologie de pointe...