Utilisation de messageBox

romanticide Messages postés 35 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 2 novembre 2009 - 24 janv. 2008 à 08:23
romanticide Messages postés 35 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 2 novembre 2009 - 24 janv. 2008 à 17:52
Bonjour

Mon binome à ajouter des messages box dans notre programme de jeu puissance 4 (sousvisual c++)
quand je fait debug tout ce passe bien
mais si je change la moindre ligne de code je me retrouve avec cette erreur:

1>Édition des liens en cours...
1>LINK : warning LNK4076: fichier d'état incrémentiel non valide '.\Debug/proj.ilk' ; édition de liens non incrémentielle
1>debut.obj : error LNK2019: symbole externe non résolu __imp__MessageBoxA@16 référencé dans la fonction "void __cdecl rejouer(char *,char *)" (?rejouer@@YAXPAD0@Z)
1>.\Debug/proj.exe : fatal error LNK1120: 1 externes non résolus

j'ai essayé d'intégrer la fonction qui gère la messagebox dans un des vieux programme et ça me fait la même chose
est-ce que quelqu'un peu m'aider à résoudre ce problème ?
merci

11 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
24 janv. 2008 à 10:56
Et si tu nous montrais le code de la  fonction en question avec un peu plus d'explication sur la modification que tu as fait pour que programme te généres ces erreurs...

Shell
0
romanticide Messages postés 35 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 2 novembre 2009
24 janv. 2008 à 11:12
là c'est pour la message box
void rejouer(char* nom_box, char* phrase)
{
    int clic=MessageBox(NULL, phrase, nom_box, MB_YESNO | MB_ICONQUESTION);
    if(clic==IDYES)
    {    
        etat=0;
        g.InitJeu();
        choix=3;
        glutPostRedisplay();
    }
    else
        exit(0);
}

et là c'est la fonction où je l'appelle
void affichage()
{   
   
    /* effacement de l'image avec la couleur de fond */
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
    glOrtho(-1.0,8.0,-1.0,8.0, -10.0, 10.0);
    menu_clic_droit();
    if(etat==0) //choix du type de partie
    {
        menu1();
    }
    else if(etat==1) //début partie joueur contre joueur
    {   
        g.AfficherJeu();
        g.AfficherChoix();
    }
    else if(etat==2) //le plateau est plein et personne n'a gagné
    {   
        glColor3f(0.0,0.0,0.0);  //noir
        bitmap_output(2.0, 6.5, "Aucun gagnant !");
        g.AfficherJeu();
    }
    else if(etat==3)   //un joueur a gagné
    {   
       g.AfficherJeu();
        if(g.Joueur==1)
        {   
            glColor3f(1.0,0.0,0.0);
            bitmap_output(2.0, 6.5, "Le joueur 1 a gagne !");
            glutSwapBuffers();
            rejouer("Gagné!", "Le joueur 1 a gagné! \nVoulez-vous rejouer?");
        }
        else
        {   
            glColor3f(1.0,0.8,0.0);
            bitmap_output(2.0, 6.5, "Le joueur 2 a gagne !");
            glutSwapBuffers();
            rejouer("Gagné!", "Le joueur 2 a gagné! \nVoulez-vous rejouer?");
        }
       // g.AfficherJeu();
    }
    else if(etat==4) //choix de rejouer ou non
    {
        glColor3f(0.0,0.0,0.0);
        bitmap_output(1.5, 3.5, "Voulez-vous rejouer? (o/n)");
    }
    else if(etat==5) //début partie joueur contre machine
    {
        g.AfficherJeu();
        g.AfficherChoix();
    }
    else if(etat==6) //début partie machine contre machine
    {
        g.AfficherJeu();
        Sleep(700);
        //on commence la boucle
        g.SetPosition(ET.MeilleurBis(g,g.Joueur));    
        if(g.EstVide(g.GetPosition())==true)
        {
                g.PlacerJeton(g.GetPosition(),g.Joueur);

                //vérifications :
                if(g.Gagner(g.Joueur)==false)
                    if(g.VerifEstPlein()==false)
                    {
                        if(g.Joueur==2)
                            g.Joueur=1;
                        else g.Joueur=2;
                    }
                    else
                    {
                        cout<<"Le plateau de jeu est plein et personne n'a gagné! ! !"<<endl;
                        etat=2;
                    }
                else
                {   
                    cout<<"Le joueur "<<g.Joueur<<" a gagné! ! !"<<endl;
                    etat=3;
                }
             }//if true
             glutPostRedisplay();
       
    }//else etat6

    //on force l'affichage
    glFlush();
    // On echange les buffers
    glutSwapBuffers();
}

en couleur tu as les changements mais est-ce que ça serait pas parce que comme un imbécile j'ai laissé un glutSwapBuffers();
à la fin ?!
merci
0
romanticide Messages postés 35 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 2 novembre 2009
24 janv. 2008 à 11:13
mais je comprends toujours pas pourquoi ça ne tourne pas dans un autre programme (si ma remarque est la bonne!)
0
romanticide Messages postés 35 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 2 novembre 2009
24 janv. 2008 à 11:17
j'ai essayé par acquis de conscience mais non c'est pas ça
si je bouge la moindre chose ou même si j'ajoute un cout<<"hello"<<endl;
au début de la fonction ça plante!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
24 janv. 2008 à 14:21
Salut,

Je pense que lorsque tu compiles ton programme sans avoir fait la moindre modif, il ne le compile pas mais il se charge uniquement de l'executer.
Ben oui, pas de modif donc pas besoin de le recompiler...

Il faut que tu inclues une lib a ton projet: Demande a ton binome qu'elle lib il a ajouté

A+

0
romanticide Messages postés 35 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 2 novembre 2009
24 janv. 2008 à 14:34
j'ai déjà inclus la biblio windows.h
merci au moins je comprends pourquoi ça fonctionne sans mofif !

pas grave il devrait m'envoyé une nouvelle version je verrai bien si ça recommence
merci pour vos réposes
0
romanticide Messages postés 35 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 2 novembre 2009
24 janv. 2008 à 15:41
je n'arrive pas à trouver d'où ça vient
même avec la nouvelle version de mon binome j'ai toujours l'erreur et les biblio sont ok a priori

#include
#include<time.h>
//#include<cstdlib>
#include<windows.h>
using namespace std;

est-ce qu'il manque qq chose dans visual ?
0
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
24 janv. 2008 à 16:07
Re

Il faut que tu link avec la lib USER32.LIB.
Ajoute la ligne suivante en debut de programme;
#pragma comment (lib, "user32.lib")

A+
0
romanticide Messages postés 35 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 2 novembre 2009
24 janv. 2008 à 16:39
ben maintenant j'ai une nouvelle erreur !
pourtant il est au bon endroit mon glut.h
1>d:\mes documents\mes fichiers reçus\debut.cpp(10) : fatal error C1083: Impossible d'ouvrir le fichier include : 'glut.h' : No such file or directory
0
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
24 janv. 2008 à 16:47
Regarde dans les propriétées du programme, ton binome a peux etre changé le Path des includes.

0
romanticide Messages postés 35 Date d'inscription samedi 17 novembre 2007 Statut Membre Dernière intervention 2 novembre 2009
24 janv. 2008 à 17:52
merci je crois que ça y est
0
Rejoignez-nous