Visual C++ .NET - problemas con opengl y .net

 
Vista:

problemas con opengl y .net

Publicado por juan antonio vicente pastor (1 intervención) el 09/11/2008 18:30:38
hola, tengo un problema en lo mas basico de opengl, el caso es que estoy realizando la practica de un curso y me da unos errores que nadie sabe responder ni subsanar, este es el codigo:

#include "stdafx.h"
#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <stdlib.h>

void init(void)
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glEnable(GL_DEPTH_TEST);
glShadeModel(GL_SMOOTH);
glMatrixMode(GL_MODELVIEW);
gluLookAt(3, 2, 3, 0, 0, 0, 0, 1, 0);
}
void redraw(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glBegin(GL_POLYGON);
glColor3f(1.0, 0.0, 0.0);
glVertex3f(1,0,0);
glColor3f(0.0, 1.0, 0.0);
glVertex3f(-1,-1,1);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(1,-1,1);
glEnd();

glBegin(GL_POLYGON);
glColor3f(1.0, 0.0, 0.0);
glVertex3f(1,0,0);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(1,-1,1);
glColor3f(1.0, 0.0, 1.0);
glVertex3f(1,-1,-1);
glEnd();

glBegin(GL_POLYGON);
glColor3f(1.0, 0.0, 0.0);
glVertex3f(1,0,0);
glColor3f(1.0, 0.0, 1.0);
glVertex3f(1,-1,-1);
glColor3f(0.0, 1.0, 0.0);
glVertex3f(-1,-1,-1);
glEnd();

glBegin(GL_POLYGON);
glColor3f(0.0, 1.0, 0.0);
glVertex3f(1, 0, 0);
glColor3f(1.0, 0.0, 1.0);
glVertex3f(-1,-1,-1);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(-1,-1,1);
glEnd();

glBegin(GL_POLYGON);
glColor3f(0.0, 1.0, 0.0);
glVertex3f(-1,-1,1);
glColor3f(1.0, 0.0, 1.0);
glVertex3f(-1,-1,-1);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(1,-1,1);
glColor3f(0.5, 0.0, 1.0);
glVertex3f(1,-1,-1);
glEnd();

glutSwapBuffers();
}
void reshape(int anchura, int altura)
{
glViewport(0,0, (GLsizei) anchura, (GLsizei) altura);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(35, (anchura/altura), 0.1, 10000);
glMatrixMode(GL_MODELVIEW);
}
void keyboard(unsigned char tecla , int x, int y)
{
if (tecla== 27) exit(0);
}

int main(int argc, CHAR* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(320, 240);
glutCreateWindow("opengl1_3");
init();
glutKeyboardFunc(keyboard);
glutDisplayFunc(redraw);
glutReshapeFunc(reshape);
glutMainLoop();
}

y estos los mensajes de error que me suegen a la hora de generar:

1>opengl1_3.obj : error LNK2019: símbolo externo _gluLookAt sin resolver al que se hace referencia en la función "void __cdecl init(void)" (?init@@YAXXZ)
1>opengl1_3.obj : error LNK2019: símbolo externo _glMatrixMode sin resolver al que se hace referencia en la función "void __cdecl init(void)" (?init@@YAXXZ)
1>opengl1_3.obj : error LNK2019: símbolo externo _glShadeModel sin resolver al que se hace referencia en la función "void __cdecl init(void)" (?init@@YAXXZ)
1>opengl1_3.obj : error LNK2019: símbolo externo _glEnable sin resolver al que se hace referencia en la función "void __cdecl init(void)" (?init@@YAXXZ)
1>opengl1_3.obj : error LNK2019: símbolo externo _glClearColor sin resolver al que se hace referencia en la función "void __cdecl init(void)" (?init@@YAXXZ)
1>opengl1_3.obj : error LNK2019: símbolo externo _glEnd sin resolver al que se hace referencia en la función "void __cdecl redraw(void)" (?redraw@@YAXXZ)
1>opengl1_3.obj : error LNK2019: símbolo externo _glVertex3f sin resolver al que se hace referencia en la función "void __cdecl redraw(void)" (?redraw@@YAXXZ)
1>opengl1_3.obj : error LNK2019: símbolo externo _glColor3f sin resolver al que se hace referencia en la función "void __cdecl redraw(void)" (?redraw@@YAXXZ)
1>opengl1_3.obj : error LNK2019: símbolo externo _glBegin sin resolver al que se hace referencia en la función "void __cdecl redraw(void)" (?redraw@@YAXXZ)
1>opengl1_3.obj : error LNK2019: símbolo externo _glClear sin resolver al que se hace referencia en la función "void __cdecl redraw(void)" (?redraw@@YAXXZ)
1>opengl1_3.obj : error LNK2019: símbolo externo _gluPerspective sin resolver al que se hace referencia en la función "void __cdecl reshape(int,int)" (?reshape@@YAXHH@Z)
1>opengl1_3.obj : error LNK2019: símbolo externo _glLoadIdentity sin resolver al que se hace referencia en la función "void __cdecl reshape(int,int)" (?reshape@@YAXHH@Z)
1>opengl1_3.obj : error LNK2019: símbolo externo _glViewport sin resolver al que se hace referencia en la función "void __cdecl reshape(int,int)" (?reshape@@YAXHH@Z)
1>C:Documents and Settings atrosMis documentosVisual Studio 2005Projectsopengl1_3Debugopengl1_3.exe : fatal error LNK1120: 13 externos sin resolver

tengo bien las dependencias y los directorios de inclusion adicionales, tanto de librerias como de encabezados, enlazados a las carpetas del psdk de microsoft 6.1, y sigo sin saber por que me salen esos mensajes, ya que parece ser que soy el unico del curso que los tiene. Tambien cabia la posibilidad de que fuera un problema con la grafica, o algun archivo corrupto, pero instalé visual c++ y el psdk en otro ordenador, con otra grafica distinta y me sigue surgiendo el problema, las graficas en cuestion son ati x2300 y ati 9600 pro, en ambos casos bajo windows xp, alguien sabe a que se debe este problema?

el compilador es visualc++ 2005 express editions
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Problemas de enlace con OpenGL en Visual C++ 2005 Express Edition

Publicado por Alejandro (265 intervenciones) el 05/02/2024 23:06:32
Juan, los errores que estás experimentando indican que el enlazador no puede encontrar las implementaciones de las funciones de OpenGL y GLU. A continuación, te proporcionaré algunos pasos para abordar este problema:

1. Revisa las configuraciones del proyecto:
- Asegúrate de que estás enlazando correctamente las bibliotecas de OpenGL y GLU. Puedes hacer esto en las propiedades del proyecto (`Configuration Properties -> Linker -> Input -> Additional Dependencies`).
- Verifica que las rutas de las bibliotecas de OpenGL y GLU estén incluidas en `Configuration Properties -> VC++ Directories -> Library Directories`.
- Verifica que las rutas de los encabezados de OpenGL y GLU estén incluidas en `Configuration Properties -> VC++ Directories -> Include Directories`.

2. Orden de inclusión de bibliotecas:
- Asegúrate de que estás incluyendo las bibliotecas de OpenGL y GLU en el orden correcto en `Additional Dependencies`. Deberías poner `opengl32.lib` antes de `glu32.lib`.

3. Cambiar el modelo de enlace:
- Intenta cambiar el modelo de enlace a "Multithreaded" o "Multithreaded Debug" en lugar de "Multithreaded DLL" o "Multithreaded Debug DLL" en `Configuration Properties -> C/C++ -> Code Generation -> Runtime Library`.

4. Verifica la configuración de la plataforma:
- Asegúrate de que estás compilando y enlazando para la misma arquitectura que la de tus bibliotecas de OpenGL y GLU (por ejemplo, 32 bits o 64 bits).

5. Actualiza tus controladores de GPU:
- Asegúrate de tener los controladores de la GPU más recientes instalados en tu sistema.

6. Posible problema de configuración de OpenGL:
- Verifica que tu sistema tiene instalado OpenGL y que las bibliotecas necesarias (`opengl32.lib` y `glu32.lib`) están disponibles.

7. Problema con Express Edition:
- Ten en cuenta que Visual C++ 2005 Express Edition puede tener algunas limitaciones. Si es posible, considera usar una versión más reciente de Visual Studio.

8. Verifica las dependencias faltantes:
- Asegúrate de que los archivos `opengl32.lib` y `glu32.lib` estén en las ubicaciones correctas y sean accesibles para el enlazador.

Después de realizar estos pasos, intenta compilar tu proyecto nuevamente. Si el problema persiste, revisa detenidamente la configuración del proyecto y asegúrate de que todas las dependencias estén configuradas correctamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar