Passer un tableau purebasic à une DLL écrite en C
Publié : jeu. 20/mars/2008 20:42
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 :
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 :
0 et 0 étant les entiers, sequence étant un Dim déclaré et rempli de 0 comme ceci :
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+
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]);
Code : Tout sélectionner
aw_query(0,0,sequence)
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
Bref, avez vous une idée de comment résoudre ce problème ?
Merci d'avance, a+