将GLUT与Visual C++ Express Edition一起使用

Ash*_*ppa 10 opengl glut visual-studio visual-c++

在Visual C++ Express Edition下使用GLUT(OpenGL Utility Toolkit)编译OpenGL应用程序的基本步骤是什么?

Ash*_*ppa 9

  1. 如果您没有Visual C++ Express Edition(VCEE),请下载并安装VCEE.
  2. Visual C++ Express Edition的默认安装是为.Net平台构建的.我们需要为Windows平台构建,因为OpenGL和GLUT尚未完全支持.Net.为此,我们需要Microsoft Platform SDK.(如果您使用的是旧版本的VCEE,请下载并安装Microsoft Platform SDK.需要将Visual C++ Express Edition配置为针对Windows平台构建.所有这些说明均可在此处获得.)
  3. 如果您没有GLUT,请下载并解压缩Nate Robin的GLUT Windows端口.
  4. glut.h添加到您的Platform SDK/include/GL /目录中
  5. 将项目与glut.lib链接.(转到VCEE 项目属性 - >其他链接器目录并添加具有glut.lib的目录.
  6. glut.dll添加到Windows/System32目录,以便所有使用GLUT的程序都可以在运行时找到它.

您使用GLUT或OpenGL的程序现在应该在Visual C++ Express Edition下编译.


Bax*_*imo 6

Nate Robin网站上的GLUT端口是从2001年开始的,与Visual Studio的版本(.NET 2003及更高版本)有一些不兼容的地方.不相容性表现为重新定义的错误exit().如果您看到此错误,则有两种可能的解决方案:

  1. 更换exit()原型glut.h与一个在你stdlib.h让它们匹配.这可能是最好的解决方案.
  2. 一个更简单的解决方案是在你的程序#define GLUT_DISABLE_ATEXIT_HACK之前#include <gl/glut.h>.

(应有的信誉:我最初在TAMU服务台网站上看到了这个建议.)

自.NET 2003问世以来,我一直在使用方法#1,并且使用了glut.h与VC++ 2003,VC++ 2005和VC++ 2008 相同的修改方法.

这里是glut.h的差异,我使用的是#1(但在适当的#ifdef blocks情况下它仍适用于旧版本的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. */
Run Code Online (Sandbox Code Playgroud)