IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Allegro Discussion :

Problème de compilation


Sujet :

Allegro

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Problème de compilation
    Bonjour à tous,

    J'ai un programme qui se compile sans problème et qui ne s'exécute pas:

    Quand je crée un projet win application j'ai ce message d'erreur: LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
    Quand je crée un projet console application j'ai ce message d'erreur: LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
    Je pense que le problème vient de mon programme mais je ne sais pas de où!

    Ce problème à déjé été rencontré mais le changement console application en win application n'y a rien changé.

    Si quelqu'un pouvait me venir en aide, ce serait avec plaisir car pour l'instant je ressemble plutôt à cela : !^^

    Mon programme est le suivant:

    #include <math.h>
    #include <stdio.h>
    #include <allegro.h>

    /* CONSTANTES DU PROGRAMME */
    #define h 0.2
    #define h2 h*h
    #define rayon 1.0
    #define R3S2 sqrt(3.0)/2.0
    #define K 0.1
    #define A 1.0
    #define T 0.02
    #define sinb 0.0
    #define g 9.81
    #define epmin -3.0
    #define MAX_CALC 10000

    /* COORODNNEES DE LA FENÊTRE DE VISUALISATION DE L'ECRAN */
    #define xmin -6
    #define xmax 6
    #define ymin -4.5
    #define ymax 4.5

    /* DEFINITION DES COULEURS : VALEURS STANDARDS SUR UN PC */
    #define bleu 1
    #define vert 2
    #define rouge 4
    #define jaune 14
    #define blanc 15

    /* RESOLUTION DE L'IMAGE CALCULEE */
    #define largeur 500.0
    #define hauteur 500.0

    /* TYPES */
    typedef double reel;

    /* VARIABLES */
    /* Coordonnées, vitesse et accélération de la bille */
    reel ax,ay,vx,vy,x,y;

    /* Valeurs définies pour l'intégration par la méthode de Runge Kutta */
    reel x3,y3,vx3,vy3,kx1,ky1,jx1,jy1;
    reel kx2,ky2,jx2,jy2,kx3,ky3,jx3,jy3,kx4,ky4,jx4,jy4;

    int nbcalc;

    /* MACROS */
    #define cx2px(x) (int) (((largeur-1.0)/(xmax-xmin))*(x-xmin))
    #define cy2py(y) (int) (((hauteur-1.0)/(ymax-ymin))*(ymax-y))

    #define px2cx(x) (double) ((xmin)+((xmax)-(xmin))*((double)x)/((largeur)-(1.0)))
    #define py2cy(y) (double) ((ymax)-((ymax)-(ymin))*((double)y)/((hauteur)-(1.0)))

    #define dist1 ((x+1.0)*(x+1.0)+(y)*(y)+h2)
    #define dist2 ((x-.5)*(x-.5)+(y-R3S2)*(y-R3S2)+h2)
    #define dist3 ((x-.5)*(x-.5)+(y+R3S2)*(y+R3S2)+h2)

    void force()
    { reel n1,n2,n3,v;
    register reel t1,t2;

    t1 = x+rayon ;
    t1 = t1*t1+y*y+h2;
    n1 = t1*sqrt(t1);

    t2 = x-(rayon/2);
    t2 = t2*t2;

    t1=y-(rayon*R3S2);
    t1=t1*t1+t2+h2;
    n2 = t1*sqrt(t1);

    t1 = y+(rayon*R3S2);
    t1 = t1*t1+t2+h2;
    n3 = t1*sqrt(t1);

    v = sqrt(vx*vx+vy*vy);

    ax = -A*(x+rayon)/n1-A*(x-rayon/2)/n2-A*(x-rayon/2)/n3-K*v*vx-g*sinb;

    ay = -A*y/n1 - A*(y-rayon*R3S2)/n2 - A*(y+rayon*R3S2)/n3-K*v*vy;

    return;
    }

    reel calcul_energie(reel x,reel y, reel vx, reel vy)

    {return - ( A/sqrt(dist1) + A/sqrt(dist2) + A/sqrt(dist3))
    + 0.5*(vx*vx+vy*vy) + g*sinb*x;}


    void rk()
    { int i;

    vx = 0;
    vy = 0;
    x3 = x;
    y3 = y;
    vx3 = vx;
    vy3 = vy;
    nbcalc = 0;
    while (calcul_energie(x,y,vx,vy) > epmin && nbcalc<MAX_CALC)
    { for (i=0; i<10 ; ++i)
    {
    ++nbcalc;
    force();

    kx1=T*vx;
    ky1=T*vy;
    jx1=T*ax;
    jy1=T*ay;
    x +=kx1/2.0;
    y +=ky1/2.0;
    vx +=jx1/2.0;
    vy +=jy1/2.0;

    force();
    kx2=T*vx;
    ky2=T*vy;
    jx2=T*ax;
    jy2=T*ay;
    x =x3+kx2/2.0;
    y =y3+ky2/2.0;
    vx =vx3+jx2/2.0;
    vy =vy3+jy2/2.0;

    force();
    kx3=T*vx;
    ky3=T*vy;
    jx3=T*ax;
    jy3=T*ay;
    x =x3+kx3;
    y =y3+ky3;
    vx =vx3+jx3;
    vy =vy3+jy3;

    force();
    kx4=T*vx;
    ky4=T*vy;
    jx4=T*ax;
    jy4=T*ay;
    x=x3+(kx1+kx2+kx2+kx3+kx3+kx4)/6;
    y=y3+(ky1+ky2+ky2+ky3+ky3+ky4)/6;
    vx=vx3+(jx1+jx2+jx2+jx3+jx3+jx4)/6;
    vy=vy3+(jy1+jy2+jy2+jy3+jy3+jy4)/6;

    x3=x;
    y3=y;
    vx3=vx;
    vy3=vy;
    }
    }
    }

    int main()
    { int xinit,yinit ;

    PALETTE pal ;
    BITMAP* bmp ;

    get_palette(pal) ;
    bmp = create_bitmap( (int)largeur, (int)hauteur ) ;

    for ( yinit=0 ; yinit<(int)hauteur ; yinit++ )
    {
    printf( "Progression : %d\n", (int)((reel)(100*yinit)/largeur) ) ;
    for ( xinit=0 ; xinit<(int)largeur ; xinit++ )
    {
    x = px2cx( xinit ) ;
    y = py2cy( yinit ) ;
    rk() ;

    /* Ici, on décide de la couleur à affecter au point */

    if ( nbcalc < MAX_CALC )
    {
    if ( x > -2.5 )
    {
    if ( dist2 < dist1 )
    {
    if ( dist3 <dist2 )
    putpixel( bmp, xinit, yinit, bleu ) ;
    else
    putpixel( bmp, xinit, yinit, rouge) ;
    }
    else
    {
    if ( dist3 < dist1 )
    putpixel( bmp, xinit, yinit, bleu ) ;
    else
    putpixel( bmp, xinit, yinit, jaune ) ;
    }
    }
    else putpixel( bmp, xinit, yinit, vert ) ;
    }
    else putpixel( bmp, xinit, yinit, blanc ) ;
    }
    }
    save_tga( "tp.tga", bmp, pal );
    destroy_bitmap( bmp );
    return 0;
    }

  2. #2
    Invité4
    Invité(e)
    Par défaut
    utilise la balise code et compile en mode console si tu as un main classique.

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Tu entends quoi par balise code?

  4. #4
    Invité4
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bool use_code = true;
    if (!use_code)
    {
       post_on_the_forum = false;
    }
    Ton compilateur s'attend à une fonction WinMain au lieu du main, vu que tu es en Win32 GUI.

  5. #5
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut


    Donc si je crée une console, je ne devrais plus avoir de problème, en théorie...

    Les codes que tu m'as marqués, je suis censé en faire quoi exactement?

  6. #6
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Salut, a toi,

    j'ai créé une win32 console application comme tu me l'as conseillé, cependant,
    comme je te l'ai souligné dans le tout premier message, dans ce cas, lors de l'éxécution, j'obtiens:
    LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main

    Il cherche donc un main() qu'il ne trouve pas. Et lorsque je créé une win32 application, j'ai l'autre message d'erreur.

    J'en suppose donc que le problème provient de mon programme mais je ne vois
    pas de où.

    Pourrait tu m'éclairer sur ce point, mon programme est dans le premier message.

    Merci d'avance.

Discussions similaires

  1. problème de compilation sous visual C++
    Par fabmili dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2004, 19h52
  2. problème de compil devc++ socket
    Par stefdem dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2003, 11h33
  3. Réponses: 1
    Dernier message: 29/10/2003, 12h16
  4. Problème de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/04/2003, 16h46
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo