2012-10-03 39 views
0

在過去的兩年中,我一直在使用Java和NetBeans,在我的項目中添加新的第三方庫所需的操作是拋出.jar文件,而NetBeans完成其餘的工作。如何在Visual Studio(2010)項目中使用第三方SDK /庫? (OpenGL/FreeGLUT/GLEW)

最近我切換到C++和Visual Studio,我很難得到一個項目使用OpenGL,GLUT和GLEW編譯,因爲缺少引用錯誤。

一些教程告訴我我需要下載GLUT/GLEW的項目並運行它們(這不起作用),一些教程告訴我需要將.dll文件添加到我的Win32文件夾,其他人說剛剛頭文件在你的項目相同的目錄中,有人說我需要將這些庫安裝到Visual Studio本身,而不僅僅是我的項目。

到目前爲止,這些方法都沒有奏效。

我只想讓這個項目使用這些庫。這是爲我目前正在投入的主要扳手,任何幫助將不勝感激。

回答

2

對不起,我沒有一個簡單的答案給你。我一直在Windows上使用OpenGL多年,這可能會很痛苦。

MS甚至沒有(真的)支持OpenGL,Windows自帶的頭文件是舊的1.x版本 - 他們沒有計劃改變它(他們希望你使用DX)。

所以,我會從小開始。

首先,獲取一個基本爲空的Win32控制檯「Hello World」應用程序運行。

然後,只是添加一個組件,如Glut。

然後,執行相同的操作 - 保持編譯/鏈接 - 逐步添加其他組件。

無論他們告訴你放置頭文件,庫文件,DLL文件等,它都需要反映在你的項目文件中。所以:

  • 添加的頭文件的位置,以 「C/C++ - >附加包含目錄」
  • .lib文件添加到 「連接器 - >輸入 - >附加依賴」
  • (它仍然不會找到它們)將.lib文件的位置添加到「鏈接器 - >常規 - >其他庫目錄」

所有這些都應該編譯和鏈接,但可能無法運行仍然是因爲它找不到DLL(與.lib文件一起)。

獲得運行的最短路徑可能只是將DLL轉儲到Windows/System32文件夾中。但從長遠來看,這可能會造成問題,因爲其他應用程序可能會覆蓋它(或將您看作覆蓋它們)。

我對特定的DLL做什麼只是明確地在我的應用程序中加載它們,所以我知道我得到的是什麼DLL(我沒有做很多特定於Windows的GL,但是當我做了,我有我自己的\ OpenGL目錄與我想要的.h文件,庫和DLL的版本)。

祝你好運!

哦,調用LoadLibrary()將加載DLL等

+0

感謝馬克,我沒有考慮到它可能是一個「微軟不希望你用任何他們沒有寫」的問題;) 我會繼續嘗試這個。 – BouncingCzech

+0

小小的更新,我設法讓一切工作,除了用LoadLibrary加載DLL,所以最後我只是把DLL放在Windows的sysWOW文件夾中,似乎都很好。 – BouncingCzech

相關問題