Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Настройка Visual Studio 2005


Автор: Maks 10.8.2006, 14:37
При компиляции программы в Visual Studio 2005 компилятор выдаёт следующие ошибки:
c4430 и с2161
Компилятор в Visual Studio 2003 эту же программу компилирует без ошибок.
Подкажите как настроить  Visual Studio 2005.

Автор: Darhazer 10.8.2006, 15:06
А где их даеть?
Цитата
Compiler Warning C4430 
missing type specifier - int assumed. Note: C++ does not support default-int

Compiler Error C2161 
Error Message 
'##' cannot occur at the end of a macro definition


Так что проверь код на указаних строк... 

П.С. Проблема не в компиляторе, а в коде. Просто более старие версии Visual Studio не так осторожни по отношению стандартов и разрешають писать нехороший код

Автор: Maks 10.8.2006, 15:12
Спасибо за подсказку!

Автор: spbprqanikov 11.8.2006, 03:42
НАРОД, ПОМОГИТЕ, ПОЖАЛУЙСТА! Если не трудно ответьте пожалуйста на [email protected]! 
у меня проблема кажется с настройкой Studio:
// Проект.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}

#include <glut.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <windows.h>
#pragma comment (lib, "opengl32.lib")
#pragma comment (lib, "glut32.lib")

double TSK_SyncTime;
long TSK_FrameCount;
int TSK_Width, TSK_Height;
double TSK_MX, TSK_MY;
int TSK_MButtons;

char TSK_Title[]="HELLO, RUSSIA";

void Reshape (int Width, int Height)
{
    glViewport(0,0,TSK_Width=Width,TSK_Height=Height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}

void Display ( void )
{
    glClear(GL_COLOR_BUFFER_BIT);
        glPushMatrix();
    glColor3d(1,1,1);
    glRotated(30*sin(3*TSK_SyncTime),0,0,1);
    glTranslated(0,-50,0);
    glRectd(-50,-50,50,50);
    glPopMatrix();
    glFlush();
    glutSwapBuffers();
    TSK_FrameCount++;
}

void Idle ( void )
{ long Time;
static long OldTime=-1, StartTime;
static char Buf[100];
 if (OldTime==-1)
     StartTime=OldTime=clock();
 else
 {
     Time=clock();
     TSK_SyncTime=(double)(Time-StartTime)/CLOCKS_PER_SEC;
     Time=Time-OldTime;
     if (Time > CLOCKS_PER_SEC)
     {
         OldTime=clock();
         sprintf(Buf, "%s FPS: %.3F",TSK_Title,TSK_FrameCount/((double)Time/CLOCKS_PER_SEC));
         TSK_FrameCount=0;
         glutSetWindowTitle(Buf);
     }
 }
 glutPostRedisplay();
}
void Keyboard ( unsigned char Key, int MouseX, int MouseY)
{
    if (Key==27)
        exit(0);
}
void Init (void)
{
    glClearColor(0,0,0,0);
}

void main (void)
{
    SetConsoleTitle(TSK_Title);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(TSK_Width=400, TSK_Height=400);
glutInitWindowPosition(0,0);
glutCreateWindow(TSK_Title);
Init();
glutReshapeFunc(Reshape);
glutDisplayFunc(Display);
glutIdleFunc(Idle);
glutKeyboardFunc(Keyboard);
glutMainLoop();
}
ЧТО ЗДЕСЬ НЕ ПРАВИЛЬНО????? smile 

Автор: Darhazer 11.8.2006, 11:07
у тебя два main-а
Реально у тебя
int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}

А твой void main() никогда не визиваеться
Так что или убери _tmain и сделай свой main int-ом, или просто код с void main перемести в int _tmain

Автор: spbprqanikov 12.8.2006, 01:35
спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)