2008-08-18 8 views

答えて

9
  1. Visual C++ Express Edition(VCEE)をお持ちでない場合は、VCEEをダウンロードしてインストールしてください。
  2. Visual C++ Express Editionのデフォルトインストールは、.Netプラットフォーム用にビルドされています。 OpenGLとGLUTは.NETで完全にサポートされていないので、Windowsプラットフォーム用にビルドする必要があります。このためには、Microsoft Platform SDKが必要です。 (以前のバージョンのVCEEを使用している場合は、Microsoft Platform SDKをダウンロードしてインストールしてください)Windowsプラットフォーム用にビルドするには、Visual C++ Express Editionを設定する必要があります。 GLUT、Nate RobinのWindows port of GLUTをダウンロードして解凍してください。
  3. あなたプラットフォームSDK /にglut.hを追加/ GL/ディレクトリ
  4. リンクglut.libとのプロジェクトが含まれます。 (VCEE プロジェクトのプロパティに行く - >追加リンカディレクトリglut.libを持つディレクトリを追加
  5. すべてのプログラムがGLUT を使用するように、のWindows/System32にディレクトリにglut.dllを追加します。実行時にそれを見つけることができます。
今のVisual C++ Express Editionの下でコンパイルする必要がありGLUTやOpenGLを使用しています

あなたのプログラム。

+0

ありがとう!手順4をよく理解していない方は、私のために次のように翻訳してください(例として)。C:\ Program Files \ Microsoft SDKs \ Windows \ 7.0a \ Include \ GL .Step 5の 'Lib 'ディレクトリは' Include 'と同じレベルにあります(この場合、宣言する必要はなく、追加のリンカーディレクトリも必要です)。 – Gazza

6

ネイトロビンのサイトでGLUTのポートは2001からですndはそれよりも新しいVisual Studioのバージョン(.NET 2003以降)といくつかの非互換性があります。非互換性は、exit()の再定義に関するエラーとして現れます。このエラーが表示された場合、2つの解決策があります。

  1. は、彼らが一致するように、あなたのstdlib.hの1とglut.hexit()プロトタイプを交換してください。これはおそらく最良の解決策です。
  2. あなたのプログラムで#include <gl/glut.h>の前に#define GLUT_DISABLE_ATEXIT_HACKに簡単な解決策があります。

(原因クレジット:。私はもともとTAMU help desk websiteにこのアドバイスを見て)私はアプローチ#1を自分で使用してきた

.NET 2003が出てきた、と同じことがVC++ 2003でglut.hを変更使用しているので、 、VC++ 2005とVC++ 2008

はここで#1を行い、私が使用しglut.hためのdiffのだ(ただし、適切な#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. */ 
+0

Baxissimo:この一般的なエラーと修正を指摘していただきありがとうございます。ほとんどのOpenGL初心者がこのエラーに直面しているのを見てきました。 –