visual-studio - para - visual studio code wrap tag
Uso de GLUT con Visual C++ Express Edition (2)
- Si no tiene Visual C ++ Express Edition (VCEE), descargue e instale VCEE .
- La instalación predeterminada de las compilaciones de Visual C ++ Express Edition para la plataforma .Net. Tendremos que crear para la plataforma de Windows ya que OpenGL y GLUT aún no son totalmente compatibles con .Net. Para esto necesitamos el Microsoft Platform SDK. (Si está utilizando una versión anterior de VCEE, descargue e instale Microsoft Platform SDK .) Visual C ++ Express Edition deberá configurarse para compilar para la plataforma Windows. Todas estas instrucciones están disponibles aquí .
- Si no tiene GLUT, descargue y descomprima el puerto Windows de GLUT de Nate Robin.
- Agregue glut.h a su Platform SDK / include / GL / directory
- Enlace el proyecto con glut.lib . (Vaya a VCEE Project Properties -> Additional Linker Directories y agregue el directorio que tiene glut.lib .
- Agregue glut.dll al directorio de Windows / System32 , para que todos los programas que utilizan GLUT puedan encontrarlo en tiempo de ejecución.
Su programa que usa GLUT u OpenGL debería compilarse bajo Visual C ++ Express Edition ahora.
¿Cuáles son los pasos básicos para compilar una aplicación OpenGL usando GLUT (OpenGL Utility Toolkit) bajo Visual C ++ Express Edition?
El puerto GLUT en el sitio de Nate Robin es de 2001 y tiene algunas incompatibilidades con las versiones de Visual Studio más recientes que eso (.NET 2003 y posteriores). La incompatibilidad se manifiesta como errores sobre la redefinición de exit()
. Si ve este error, hay dos soluciones posibles:
- Reemplace el prototipo
exit()
englut.h
con el de sustdlib.h
para que coincida. Esta es probablemente la mejor solución. - Una solución más fácil es
#define GLUT_DISABLE_ATEXIT_HACK
antes de que#define GLUT_DISABLE_ATEXIT_HACK
#include <gl/glut.h>
en su programa.
(Debido crédito: originalmente vi este consejo en el sitio web de la mesa de ayuda de TAMU ).
He usado el enfoque n. ° 1 desde que salió .NET 2003, y he usado el mismo glut.h
modificado con VC ++ 2003, VC ++ 2005 y VC ++ 2008.
Aquí está el diff para el glut.h Yo uso which does # 1 (pero en los #ifdef blocks
apropiados para que todavía funcione con versiones anteriores de Visual Studio):
--- c:/naterobbins/glut.h 2000-12-13 00:22:52.000000000 +0900
+++ c:/updated/glut.h 2006-05-23 11:06:10.000000000 +0900
@@ -143,7 +143,12 @@
#if defined(_WIN32)
# ifndef GLUT_BUILDING_LIB
-extern _CRTIMP void __cdecl exit(int);
+/* extern _CRTIMP void __cdecl exit(int); /* Changed for .NET */
+# if _MSC_VER >= 1200
+extern _CRTIMP __declspec(noreturn) void __cdecl exit(int);
+# else
+extern _CRTIMP void __cdecl exit(int);
+# endif
# endif
#else
/* non-Win32 case. */