Jump to content

Problema com visual studio 10


WolfmanZ
 Share

Recommended Posts

Boas estou a trabalhar num projecto em Visual Studio 2010 e ao compilar deu-me este unico erro :

error C2381: 'exit' : redefinition; __declspec(noreturn) differs c:\program files\microsoft visual studio 10.0\vc\include\stdlib.h 353

Alguém sabe como corrigir/emendar isto?

Obrigado desde já!

Link to comment
Share on other sites

como te foi dito, não podes ter nenhuma definição a nível global com o nome exit (estou também a assumir que estás a trabalhar em c++)

com a informação escassa que dá, a única coisa que te posse pedir é que faças post do teu código e a linha correcta onde te dá o erro.

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

tou a trabalhar em opengl e o erro que dá é no ficheiro da stdlib nao é no codigo error C2381: 'exit' : redefinition; __declspec(noreturn) differs c:\program files\microsoft visual studio 10.0\vc\include\stdlib.h 353 é esta linha: " _CRTIMP __declspec(noreturn) void __cdecl exit(_In_ int _Code); "

Link to comment
Share on other sites

bem ... se achas que estou a falar francês eu falo em português:

Não pode ter nenhuma função global, nome de variável global, nome de classe ou definição de tipo com o nome de exit quando chamas a stdlib.

disseste que tens no teu código, mas no entanto recusaste a alterar ... mais não posso fazer

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

ja consegui compilar so que ha 2 coisas mal que ainda nao consegui resolver 1º nave ao rodar 360 ao andar no eixo do Y o raio aumenta tambem. 2º os tiros da nave nao se mexem fica aqui parte do codigo

typedef struct{
float x,y;
float v1,v2;
}POINT;
POINT a={0,0,0,0,};
POINT b={0,0,0,0,};
float X_CENTRE = 0.0;
float Y_CENTRE = 0.0;
float rot = 0.0;
float AsteroidX[6];
float AsteroidY[6];
float angle = 0;
float bulletAngle = 0;
bool fired = false;
float BulletLocX = a.x + (X_CENTRE);
float BulletLocY = a.y + (Y_CENTRE + 5.5);
bool collision = false;
void drawship() //desenhar nave
{
if(a.x > 100){
a.x=a.x-200;
}
if(a.x < -100){
a.x=a.x+200;
}
if(a.y > 100){
a.y=a.y-200;
}
if(a.y < -100){
a.y=a.y+200;
}
 glColor3f(1, 1, 1);
 //glLoadIdentity();
 glRotatef(angle,0.0,0.0,1.0);
glBegin(GL_POLYGON);
glVertex2f( a.x + (X_CENTRE), a.y + (Y_CENTRE + 5));
glVertex2f( a.x +(X_CENTRE + 5), a.y +( Y_CENTRE - 9));
glVertex2f( a.x + X_CENTRE, a.y + (Y_CENTRE -7));
glVertex2f( a.x +( X_CENTRE -5), a.y + (-9));
glEnd();
glFlush();

}

void drawBullet()
{
 glLoadIdentity();
 glRotatef(angle,0.0,0.0,1.0);
 glColor3f(0, 0, 1);
glPointSize(3.0);
glBegin(GL_POINTS);
 glVertex2f(a.x + (X_CENTRE), a.y + (Y_CENTRE + 5.5));
 glEnd();
 //glFlush();
}
void keyinput(int key, int x, int y)
{
 switch(key){
case GLUT_KEY_UP:
a.y = a.y + 1;
break;
 case GLUT_KEY_LEFT:
		 angle = angle + 5;
		 break;
 case GLUT_KEY_RIGHT:
		 angle = angle - 5;
		 break;
case GLUT_KEY_DOWN:
a.y = a.y - 1;
break;
 }
}
void shoot(unsigned char key,int x, int y){
 switch(key){
 case 32:
		 if(fired != true){
		 bulletAngle = angle + 90;
		 bulletAngle = (bulletAngle * 3.142)/180;
		 }
	 fired = true;
 break;
 }
}
void bulletPath(){
 BulletLocX = 0 + (5*cos(bulletAngle)/10);
 glutPostRedisplay();
 BulletLocY = 5.5 + (5*sin(bulletAngle)/10);
 glutPostRedisplay();
}
void display(void)
{
glClear (GL_COLOR_BUFFER_BIT);
glClearColor(0.0, 0.0, 0.0, 1.0);
glPointSize(1.0);
drawBullet();
drawAsteroid();
drawship();
drawScore();
if (fired)
{

	 bulletPath();
}
CollisionTest();
if(BulletLocX > 100.0 || BulletLocX < -100.0 || BulletLocY > 100.0 || BulletLocY < -100.0 || collision == true)
{
	 collision = false;
	 fired = false;
	 BulletLocX = BulletLocX;
	 BulletLocY = BulletLocY;
}
}
Edited by Baderous
geshi
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.