2012-01-04 85 views
1

我正在閱讀OpenGl superbible,並且在第一個三角形程序中它不會運行。 該程序編譯得很好,但是當我運行它,它給了我錯誤信息freeglut.dll從您的計算機丟失。我下載並把它放在正確的目錄中,它說MSVCR71.dll丟失了,所以我下載了它,並把它放在正確的目錄,它開始說「過程入口點__glutCreateWindowWithExit不能位於動態鏈接庫freeglut.dll「。有誰知道我做錯了什麼?我遵循了這本書告訴我的所有方向。freeglut.dll丟失

+2

你不應該只下載一個像那樣的DLL。在'freeglut.dll'的情況下,您需要與您使用的相應'.lib'文件完全匹配的版本。對於'mscvr71.dll',您需要將整個運行時作爲匹配的版本集,並且需要正確安裝。 – 2012-01-04 03:40:58

+0

三角形是一個有用的標籤嗎? – 2012-01-04 04:01:19

+0

@LightnessRacesinOrbit:不,我刪除它(動物標本) – datenwolf 2012-01-04 09:12:02

回答

6

你不能只抓住interwebtubes中的隨機DLL並將它們轉儲到你的PC上。有版本問題可以認爲你完全繞過。當MSVC運行時依賴關係沒有連接起來時它應該是一個提示。

正確安裝freeGLUT軟件包的全部內容。

-1

編譯器中沒有可以鏈接庫的選項嗎?例如,如果您使用DevC++,則應該轉到Project - > Project Options - > Parameters,然後設置Linkers。

4

我有同樣的問題。請按照下列步驟操作:

假設您執行了書中給出的所有步驟。

  1. 從同伴網站下載源代碼...我認爲該文件夾是SB5和它的92 MB。
  2. 然後建立名爲'freeglut.vcproj'的項目。
  3. 它會產生freeglut.dll除了其他files.Put freeglut.dll到C:\ WINDOWS \ SYSWOW64文件夾,一切都完成了。
0

如果你正在運行這個MSVC,你可以在任何你的可執行文件中包含dll,然後你可以把dll放到Debug文件夾中。清理文件夾將刪除除dll以外的所有內容,因此您不必擔心不斷重新複製它。此外,如果你想要一個替代的解決方案,你可以只把DLL你裏面的Windows/System32文件夾中,或者在64位架構的情況下,你可以把它的系統內/ SYSWOW64文件夾