2008-08-18 7 views

Répondre

9
  1. Si vous n'avez pas Visual C++ Express Edition (VCEE), téléchargez et installez VCEE.
  2. L'installation par défaut des versions de Visual C++ Express Edition pour la plate-forme .Net. Nous devrons construire pour la plate-forme Windows puisque OpenGL et GLUT ne sont pas encore entièrement supportés sous .Net. Pour cela, nous avons besoin du Microsoft Platform SDK. (Si vous utilisez une ancienne version de VCEE, téléchargez et installez le Microsoft Platform SDK Visual C++ Express Edition devra être configuré pour être construit pour la plate-forme Windows Toutes ces instructions sont disponibles here.)
  3. Si vous n'avez pas GLUT, téléchargez et décompressez le Windows port of GLUT de Nate Robin.
  4. Ajouter glut.h à votre plate-forme SDK/include/GL/ répertoire
  5. lien avec le projet glut.lib. (Passez à VCEE Propriétés du projet -.> Annuaires supplémentaires Linker et ajoutez le répertoire qui a glut.lib
  6. Ajouter glut.dll au répertoire Windows/System32, de sorte que tous les programmes utilisant GLUT peut le trouver à l'exécution.

Votre programme qui utilise GLUT ou OpenGL devrait compiler sous Visual C++ express Edition maintenant.

+0

Merci beaucoup! Pour ceux d'entre nous qui ne comprennent pas bien l'étape 4, cela traduit dans le répertoire suivant pour moi (à titre d'exemple): C: \ Programmes \ Microsoft SDKs \ Windows \ 7.0a \ Include \ GL .Step 5 'Lib 'directory est au même niveau que' Include '(auquel cas vous n'avez pas besoin de déclarer et le répertoire de l'éditeur de liens supplémentaire). – Gazza

6

Le port de GLUT sur le site de Nate Robin est de 2001, nd a quelques incompatibilités avec les versions de Visual Studio plus récentes que cela (.NET 2003 et plus). L'incompatibilité se traduit par des erreurs de redéfinition de exit(). Si vous voyez cette erreur, il y a deux solutions possibles:

  1. Remplacer le prototype exit() en glut.h avec celui de votre stdlib.h afin qu'ils correspondent. C'est probablement la meilleure solution.
  2. Une solution plus facile est de #define GLUT_DISABLE_ATEXIT_HACK avant de vous #include <gl/glut.h> dans votre programme.

(En raison de crédit: J'ai vu à l'origine de cet avis sur le TAMU help desk website.)

Je me sers moi-même approche # 1 depuis .NET 2003 est sorti, et ont utilisé le même modifié glut.h avec VC++ 2003 , VC++ 2005 et VC++ 2008.

Voici la diff pour le glut.h j'utilise ce qui fait # 1 (mais approprié #ifdef blocks pour qu'il fonctionne encore avec les anciennes versions 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. */ 
+0

Baxissimo: Merci d'avoir signalé cette erreur commune et son correctif. J'ai vu que presque chaque newbie OpenGL fait face à cette erreur. –

Questions connexes