Frage

Was sind die grundlegenden Schritte zum Kompilieren einer OpenGL-Anwendung? GLUT (OpenGL Utility Toolkit) unter Visual C++ Express Edition?

War es hilfreich?

Lösung

  1. Wenn Sie nicht über Visual C++ Express Edition (VCEE) verfügen, laden Sie es herunter und installieren Sie es VCEE.
  2. Die Standardinstallation von Visual C++ Express Edition-Builds für die .Net-Plattform.Wir müssen für die Windows-Plattform bauen, da OpenGL und GLUT unter .Net noch nicht vollständig unterstützt werden.Hierfür benötigen wir das Microsoft Platform SDK.(Wenn Sie eine ältere Version von VCEE verwenden, laden Sie die herunter und installieren Sie sie Microsoft Platform SDK.Visual C++ Express Edition muss für die Erstellung für die Windows-Plattform konfiguriert werden.Alle diese Anleitungen sind verfügbar Hier.)
  3. Wenn Sie GLUT nicht haben, laden Sie Nate Robin's herunter und entpacken Sie es Windows-Portierung von GLUT.
  4. Hinzufügen Glut.h zu deinem Plattform-SDK/include/GL/ Verzeichnis
  5. Verknüpfen Sie das Projekt mit glut.lib.(Gehen Sie zu VCEE Projekteigenschaften -> Zusätzliche Linkerverzeichnisse und fügen Sie das Verzeichnis hinzu, das vorhanden ist glut.lib.
  6. Hinzufügen glut.dll zum Windows/System32 Verzeichnis, so dass alle Programme, die GLUT verwenden, zur Laufzeit finden können.

Ihr Programm, das GLUT oder OpenGL verwendet, sollte jetzt unter Visual C++ Express Edition kompiliert werden.

Andere Tipps

Der GLUT-Port auf Nate Robins Website stammt aus dem Jahr 2001 und weist einige Inkompatibilitäten mit neueren Versionen von Visual Studio (.NET 2003 und höher) auf.Die Inkompatibilität äußert sich in Fehlern bei der Neudefinition von exit().Wenn dieser Fehler auftritt, gibt es zwei mögliche Lösungen:

  1. Ersetze das exit() Prototyp in glut.h mit dem in deinem stdlib.h damit sie zusammenpassen.Dies ist wahrscheinlich die beste Lösung.
  2. Eine einfachere Lösung ist #define GLUT_DISABLE_ATEXIT_HACK bevor du #include <gl/glut.h> in Ihrem Programm.

(Fällige Gutschrift:Ich habe diesen Rat ursprünglich auf der gesehen TAMU-Helpdesk-Website.)

Ich selbst verwende Ansatz Nr. 1 seit der Veröffentlichung von .NET 2003 und habe den gleichen modifizierten Ansatz verwendet glut.h mit VC++ 2003, VC++ 2005 und VC++ 2008.

Hier ist der Unterschied für glut.h, den ich verwende und der #1 ausführt (aber in geeigneter Weise #ifdef blocks damit es auch mit älteren Versionen von Visual Studio funktioniert):

--- 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. */
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top