Utilizzando GLUT con Visual C++ Express Edition
-
08-06-2019 - |
Domanda
Che cosa sono le operazioni di base per la compilazione di un'applicazione che utilizza OpenGL GLUT (OpenGL Utility Toolkit) in Visual C++ Express Edition?
Soluzione
- Se non si dispone di Visual C ++ Express Edition (VCEE), scaricare e installare VCEE .
- L'installazione predefinita di Visual C ++ Express Edition genera per la piattaforma .Net. Dovremo compilare per la piattaforma Windows poiché OpenGL e GLUT non sono ancora completamente supportati in .Net. Per questo abbiamo bisogno dell'SDK della piattaforma Microsoft. (Se si utilizza una versione precedente di VCEE, scaricare e installare la Microsoft Platform SDK . Visual C ++ Express Edition dovrà essere configurato per compilare per la piattaforma Windows. Tutte queste istruzioni sono disponibili qui .)
- Se non disponi di GLUT, scarica e decomprimi la porta Windows di GLUT di Nate Robin / a>.
- Aggiungi glut.h alla tua piattaforma SDK / include / GL /
- Collega il progetto con glut.lib . (Vai a VCEE Proprietà progetto - & Gt; Directory di linker aggiuntive e aggiungi la directory che ha glut.lib .
- Aggiungi glut.dll alla directory Windows / System32 , in modo che tutti i programmi che utilizzano GLUT può trovarlo in fase di esecuzione.
Il tuo programma che utilizza GLUT o OpenGL dovrebbe ora compilare in Visual C ++ Express Edition.
Altri suggerimenti
La porta GLUT sul sito di Nate Robin è del 2001 e presenta alcune incompatibilità con le versioni di Visual Studio più recenti di quelle (.NET 2003 e successive). L'incompatibilità si manifesta come errori relativi alla ridefinizione di exit()
. Se vedi questo errore, ci sono due possibili soluzioni:
- Sostituisci il
glut.h
prototipo instdlib.h
con quello nel tuo#define GLUT_DISABLE_ATEXIT_HACK
in modo che corrispondano. Questa è probabilmente la soluzione migliore. - Una soluzione più semplice è
#include <gl/glut.h>
prima di te#ifdef blocks
nel tuo programma.
(Debito credito: inizialmente avevo visto questo consiglio sul sito web dell'help desk TAMU . )
Uso me stesso l'approccio n. 1 da quando .NET 2003 è uscito e ho usato la stessa modifica <=> con VC ++ 2003, VC ++ 2005 e VC ++ 2008.
Ecco il diff per il glut.h che uso che fa # 1 (ma in modo appropriato <=> in modo che funzioni ancora con le versioni precedenti di 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. */