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;
}
Partager