2012-09-29 34 views
5

我嘗試編譯SDL程序我已經寫了,但是當我做,這個錯誤顯示出來:SDL.dll從我的電腦丟失 - VS 2010

程序無法啓動是因爲您的計算機中缺少SDL.dll。 嘗試重新安裝程序來解決此問題

我不知道爲什麼。我有SDL.dll。

  • 我已經把它放在正確的文件夾中:C:\Windows\System32

  • 我對所有的SDL頭文件都有正確的路徑,例如以及。

VS說:

構建成功:1

,然後上面的錯誤彈出在屏幕上。

+1

如果你有一個64位版本的Windows,那麼它需要進入c:\ windows \ syswow64 –

回答

6

將它添加到您的調試文件夾或您的程序當前位於的任何目錄。

+0

這沒有什麼區別。 –

+2

@ user1068249在你的.cpp文件夾裏有什麼呢?這就是我通常所在的地方。 – Rapptz

+0

這就是需要dll文件的文件夾!非常感謝:) –

4

SDL.dll必須與您的應用程序位於同一目錄中,或位於環境變量PATH中的目錄中。

2

只需將您的SDL.dll放在同一個文件夾中即可解決問題。 爲了回答PATH的問題,您可以在visual studio中指定他將在調試時查找可執行文件的位置。也許這是不正確的設置,這就是爲什麼VS無法找到SDL.dll?

4

如果SDL.dll是32位,並且您運行的是64位系統,則必須將dll放入/Windows/SysWOW64/而不是/Windows/System32/,該位用於64位dll。

編輯:
你可能不應該被其複製到System32目錄,除非它們是由多個應用程序使用,甚至然後我會酌情使用公共庫來部署您的DLL。例如,應用程序可能會更新DLL,這可能會破壞依賴舊版本庫的其他應用程序。

相反,將DLL複製到與構建可執行文件相同的目錄中。如果使用Visual Studio進行構建和執行,它將在Project目錄中查找源文件可能位於其中的DLL。

+1

有史以來最具誤導性的目錄結構。 – zeboidlund

+0

嗨,如果我想將SDL.dll放到系統文件夾下的特定文件夾中,該怎麼做。 /Windows/SysWOW64/ABC/SDL.dll。 – user1219310

+0

我不認爲你可以。您應該真的只是將應用程序與DLL中的可執行文件部署在同一個目錄中,而不是在System32中。我在編輯答案以反映這一點。 –