2011-08-16 50 views
0

我想開始學習opengl,我使用VS2010最終的SP1,但是當我添加opengl頭文件時,我收到錯誤信息,表明在我創建的文件中有錯誤。VS2010中的OpenGl

#include "stdafx.h" 
#include <Windows.h> 
#include <gl\GL.h> 
#include <gl\GLU.h> 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    return 0; 
} 

錯誤(195個),這是我認爲最常見的一種:
錯誤1個錯誤C2008: '$':在宏定義Ç意外:\ Program Files文件\微軟的SDK \的Windows \ V7。 0A \ include \ driverspecs.h 142

+0

您是否嘗試過使用GLee? (http://www.opengl.org/sdk/libs/GLee/) – James

+5

什麼是**第一個**錯誤信息? –

+0

顯然_PREFAST _宏被定義。但我真的不知道是什麼原因造成的。當你使用VS2010終極版時,你可能會打開一個導致這個錯誤的選項。 Google透露它可能與一些代碼分析工具(稱爲PREfast)有關。作爲解決方法,請嘗試使用默認選項重新創建項目。 –

回答

0

我的第一個猜測是windows.h與opengl定義衝突。你並不需要windows.h來做一個簡單的命令行應用程序。 另一種可能性是預編譯頭文件選項(stdafx.h)我通常在編譯器選項中禁用它,當我處理OpenGL和其他跨平臺項目時,它們帶來的依賴關係通常與移植代碼不一致

+0

你仍然需要包含'windows.h';沒有一個你不能創建一個窗口。如果不創建窗口,則無法初始化OpenGL。 –

+0

這取決於他是否嘗試使用GLUT或WGL。 GLUT不會要求庫用戶包含操作系統特定的頭文件。 – AlexK

+0

而這又帶來了另一個問題:您試圖使用哪種OpenGL實現? – AlexK

5

請檢查您是否沒有禁用Microsoft C++擴展。 $作爲標識符的一部分是這些擴展的一部分,因此driverspecs.h在禁用時不會編譯。 命令行開關是/ Za,這個選項也是Visual Studio項目屬性中語言部分的最頂層