c++ cli - Error with VS C++ 2010 -
i have problem in vs 2010 c++ express, have project everytime start buidling , debuging giving me error : http://i.stack.imgur.com/6cuf1.png problem friend have same project , same code , work him, think there no prob in code in vs need helps , thank nb: tried reinstalit same probleme
piece.h :
#include "joueur.h" using namespace system; using namespace system::drawing; using namespace system::windows::forms; public ref class piece { private: joueur^ proprietaire; // pointeur vers joueur int ligne; int col; string^ label; image^ symbole; public: piece(); piece(joueur^ proprietaire, int ligne, int col, string^ label, image^ symbole); property joueur^ propproprietaire { joueur^ get(); void set(joueur^); } property int propligne { int get(); void set(int); } property int propcol { int get(); void set(int); } property string^ proplabel { string^ get(); void set(string^); } property image^ propsym { image^ get(); void set(image^); } };
piece.cpp:
#include "stdafx.h" #include "piece.h" piece::piece() { this->proprietaire = nullptr; ligne = 0; col = 0; label = nullptr; symbole = nullptr; } piece::piece(joueur^ prop, int l, int c, string^ la, image^ sym) { this->proprietaire = prop; ligne = l; col = c; label = la; symbole = sym; } joueur^ piece::propproprietaire::get() { return proprietaire; } void piece::propproprietaire::set(joueur^ prop) { this->proprietaire = prop; } int piece::propligne::get() { return ligne; } void piece::propligne::set(int l) { ligne = l; } int piece::propcol::get() { return col; } void piece::propcol::set(int c) { col = c; } string^ piece::proplabel::get() { return label; } void piece::proplabel::set(string^ l) { label = l; } image^ piece::propsym::get() { return symbole; } void piece::propsym::set(image^ img) { symbole = img; }
echecs.cpp:
#include "stdafx.h" #include "piece.h" #include "form1.h" #include "form2.h" using namespace echecs; namespace echecs { void form1::quitter(object^ sender, eventargs^ e) { close(); } void form2::btnannuler_click(object^ sender, eventargs^ e) { close(); } void form2::btnvalider_click(object^ sender, eventargs^ e) { form1::set(tbjoueur1->text); form1::set2(tbjoueur2->text); close(); } void form1::menu_nouvellepartie(object^ sender, eventargs^ e) { form2^ frm = gcnew form2(); frm->showdialog(); } void form1::nouvellepartie() { listejoueurs = gcnew array<joueur^>(2); // instancier un tableau à 1 dimensio, de 2 éléménts listejoueurs[0] = gcnew joueur("joueur 1", lbcoups1); listejoueurs[1] = gcnew joueur("joueur 2", lbcoups2); lbjoueur1->text = listejoueurs[0]->propnom; lbjoueur2->text = listejoueurs[1]->propnom; grille = gcnew array<piece^, 2>(8,8); // instancier un tableau à 2 dimensions, de taille 8x8 for(int i=0 ; i<8 ; i++) for(int j=0 ; j<8 ; j++) grille[i,j] = nullptr; // initialiser chacun de ses éléments à null // initialisation de la grille pour le joueur 1 (ligne 0 & 1) grille[0,0] = gcnew piece(listejoueurs[0], 0, 0, "tour", pieces->images[0]); grille[0,1] = gcnew piece(listejoueurs[0], 0, 1, "cavalier", pieces->images[1]); grille[0,2] = gcnew piece(listejoueurs[0], 0, 2, "fou", pieces->images[2]); grille[0,3] = gcnew piece(listejoueurs[0], 0, 3, "roi", pieces->images[3]); grille[0,4] = gcnew piece(listejoueurs[0], 0, 4, "dame", pieces->images[4]); grille[0,5] = gcnew piece(listejoueurs[0], 0, 5, "fou", pieces->images[2]); grille[0,6] = gcnew piece(listejoueurs[0], 0, 6, "cavalier", pieces->images[1]); grille[0,7] = gcnew piece(listejoueurs[0], 0, 7, "tour", pieces->images[0]); for(int j=0 ; j<8 ; j++) grille[1,j] = gcnew piece(listejoueurs[0], 1, j, "pion", pieces->images[5]); // initialisation de la grille pour le joueur 2 (ligne 6 & 7) grille[7,0] = gcnew piece(listejoueurs[1], 7, 0, "tour", pieces->images[6]); grille[7,1] = gcnew piece(listejoueurs[1], 7, 1, "cavalier", pieces->images[7]); grille[7,2] = gcnew piece(listejoueurs[1], 7, 2, "fou", pieces->images[8]); grille[7,3] = gcnew piece(listejoueurs[1], 7, 3, "roi", pieces->images[9]); grille[7,4] = gcnew piece(listejoueurs[1], 7, 4, "dame", pieces->images[10]); grille[7,5] = gcnew piece(listejoueurs[1], 7, 5, "fou", pieces->images[8]); grille[7,6] = gcnew piece(listejoueurs[1], 7, 6, "cavalier", pieces->images[7]); grille[7,7] = gcnew piece(listejoueurs[1], 7, 7, "tour", pieces->images[6]); for(int j=0 ; j<8 ; j++) grille[6,j] = gcnew piece(listejoueurs[1], 6, j, "pion", pieces->images[11]); /* pion, pion, pion, pion, pion, pion, pion, pion tour, cavalier, fou, roi, dame, fou, cavalier, tour */ // instanciation des cases du tableau tab tab[0,0] = case_0_0; tab[0,1] = case_0_1; tab[0,2] = case_0_2; tab[0,3] = case_0_3; tab[0,4] = case_0_4; tab[0,5] = case_0_5; tab[0,6] = case_0_6; tab[0,7] = case_0_7; tab[1,0] = case_1_0; tab[1,1] = case_1_1; tab[1,2] = case_1_2; tab[1,3] = case_1_3; tab[1,4] = case_1_4; tab[1,5] = case_1_5; tab[1,6] = case_1_6; tab[1,7] = case_1_7; tab[2,0] = case_2_0; tab[2,1] = case_2_1; tab[2,2] = case_2_2; tab[2,3] = case_2_3; tab[2,4] = case_2_4; tab[2,5] = case_2_5; tab[2,6] = case_2_6; tab[2,7] = case_2_7; tab[3,0] = case_3_0; tab[3,1] = case_3_1; tab[3,2] = case_3_2; tab[3,3] = case_3_3; tab[3,4] = case_3_4; tab[3,5] = case_3_5; tab[3,6] = case_3_6; tab[3,7] = case_3_7; tab[4,0] = case_4_0; tab[4,1] = case_4_1; tab[4,2] = case_4_2; tab[4,3] = case_4_3; tab[4,4] = case_4_4; tab[4,5] = case_4_5; tab[4,6] = case_4_6; tab[4,7] = case_4_7; tab[5,0] = case_5_0; tab[5,1] = case_5_1; tab[5,2] = case_5_2; tab[5,3] = case_5_3; tab[5,4] = case_5_4; tab[5,5] = case_5_5; tab[5,6] = case_5_6; tab[5,7] = case_5_7; tab[6,0] = case_6_0; tab[6,1] = case_6_1; tab[6,2] = case_6_2; tab[6,3] = case_6_3; tab[6,4] = case_6_4; tab[6,5] = case_6_5; tab[6,6] = case_6_6; tab[6,7] = case_6_7; tab[7,0] = case_7_0; tab[7,1] = case_7_1; tab[7,2] = case_7_2; tab[7,3] = case_7_3; tab[7,4] = case_7_4; tab[7,5] = case_7_5; tab[7,6] = case_7_6; tab[7,7] = case_7_7; for(int i=0 ; i<8 ; i++) for(int j=0 ; j<8 ; j++) { affichage(grille[i,j]); tab[i,j]->backcolor = color::transparent; } } void form1::affichage(piece^ p) { int l = p->propligne; int c = p->propcol; tab[l,c]->image = p->propsym; } void form1::set(string^ n) { lbjoueur1->text = n; } void form1::set2(string^ n) { lbjoueur2->text=n; } void form1::deplacer(object^ sender, eventargs^ e) { point coordonnees = (point)(((picturebox^)sender)->tag) ; int l = coordonnees.x; int c = coordonnees.y; if ((grille[l,c] != nullptr) && (nclick != 1)) { nclick = 1; l1=l; c1=c; tab[l,c]->backcolor = color::yellow; pc = grille[l,c]; deplacementautorise(grille[l,c]); } else if ((grille[l,c] == nullptr) && (nclick == 1)) { tab[l,c]->image = pc->propsym; grille[l,c] = pc; tab[l1,c1]->image = nullptr; grille[l1,c1] = nullptr; nclick = 0; for(int i=0 ; i<8 ; i++) for(int j=0 ; j<8 ; j++) tab[i,j]->backcolor = color::transparent; } else if ((grille[l,c] != nullptr) && (nclick == 1)) { for(int i=0 ; i<8 ; i++) for(int j=0 ; j<8 ; j++) tab[i,j]->backcolor = color::transparent; tab[l,c]->backcolor = color::yellow; pc = grille[l,c]; deplacementautorise(grille[l,c]); } } void form1::deplacementautorise(piece^ p) { int l = p->propligne; int c = p->propcol; string^ lab = p->proplabel; if (lab == "cavalier") { if ((l+2<=7) && (c+1<=7)) tab[l+2,c+1]->backcolor = color::cyan; if ((l+1<=7) && (c+2<=7)) tab[l+1,c+2]->backcolor = color::cyan; if ((l+2<=7) && (c-1>=0)) tab[l+2,c-1]->backcolor = color::cyan; if ((l+1<=7) && (c-2>=0)) tab[l+1,c-2]->backcolor = color::cyan; if ((l-1>=0) && (c+2<=7)) tab[l-1,c+2]->backcolor = color::cyan; if ((l-2>=0) && (c+1<=7)) tab[l-2,c+1]->backcolor = color::cyan; if ((l-1>=0) && (c-2>=0)) tab[l-1,c-2]->backcolor = color::cyan; if ((l-2>=0) && (c-1>=0)) tab[l-2,c-1]->backcolor = color::cyan; } if (lab == "pion") { if (grille[l+1,c] == nullptr) tab[l+1,c]->backcolor = color::cyan; } if (lab == "fou"); /*if ((l+1<=7) && (c+1<=7)) if (grille[l+1,c+1] == nullptr) { while ((l+1<=7) && (c+1<=7)) { tab[l+1,c+1]->backcolor = color::cyan; l++; c++; }} if ((l+1<=7) && (c-1>=0)) { while ((l+1<=7) && (c-1>=0)) { tab[l+1,c-1]->backcolor = color::cyan; l++; c++; }}*/ } void form1::form1_load(object^ sender, eventargs^ e) { nouvellepartie(); } } int main(array<system::string ^> ^args) { // activation des effets visuels de windows xp avant la création de tout contrôle application::enablevisualstyles(); application::setcompatibletextrenderingdefault(false); // créer la fenêtre principale et l'exécuter application::run(gcnew form1()); return 0; }
that because elements in lines 2,3,4,5 in grille
matrix initialized null
. solutions:
- initialize elements in
grille
matrix,piece
(call default constructorpiece()
instead of assigningnullptr
) - modify
form1::afichage
test ifp
notnullptr
.
Comments
Post a Comment