Bonjour, (J'espère être au bon endroit)
Je suis nouveau sur ce forum. J'ai une bonne connaissance du C mais je suis un novice avec C++/cli.
Je travaille avec visual studio 2005.
J'ai écrit un programme en C, sans interface, et j'essaie maintenant de le 'brancher' avec une interface c++ (une forme et des boutons) que j'ai créé avec visual studio.
Dans mon programme C, j'utilise des tableaux de int à 2 dimensions (int [7][7]). J'ai donc plusieurs fonctions qui prennent ce tableau en paramètre. J'essaie donc d'appeler ces fonctions à partir des méthodes de ma forme.
Je voudrais que ma forme contienne quelques tableaux à 2 dimensions, mais lorsque j'essaie d'ajouter une propriété int [7][7] à ma forme, je reçois le message d'erreur "C4368: impossible de définir courant comme membre de 'animation::Form1' managé: les types mixtes ne sont pas pris en charge".
Je défini donc une variable comme étant un pointeur à un int :
int *courant;
et j'alloue l'espace nécessaire dans le constructeur :
courant = (int *)malloc(196); (int[][7] ne fonctionne pas)
Lorsque j'essaie d'appeler une de mes fonctions: (je suis dans le constructeur)
initBoules(courant);
je reçois un message d'erreur: "C2664: 'initBoules': impossible de convertir le paramètre 1 de 'int *' en 'int[][7]' "
J'essaie donc différents cast:
initBoules((int [][7])courant); erreur C2440
initBoules(static_cast <int [][7]>(courant)); erreur C2440
initBoules(reinterpret_cast <int [][7]>(courant)); erreur C2440
initBoules(dynamic_cast <int [][7]>(courant)); erreur C2680
Comment dois-je donc m'y prendre pour appeler ma fonction avec un tableau à 2 dimensions?
Merci de votre aide.
Partager