2014-03-07 56 views
1

我有一個項目,我試圖讓它讀取一個.OGG文件。 我已經下載從herelibogglibvorbis,編譯它們(遇到了一些麻煩搞清楚我必須建立libogg第一),然後得到了以下文件:VS2012:程序無法啓動,因爲「libvorbisfile.dll」丟失

libogg.lib 
libogg.dll 
libvorbis.lib 
libvorbis.dll 
libvorbisfile.lib 
libvorbisfile.dll 

我拖着他們都在我的項目的庫文件夾,已經添加到項目中,並將它們包含在Linker-> Input(僅限.lib)中。

接下來我複製標題到我的項目包括文件夾中,也已經添加到項目中,與文件:

ogg/ogg.h 
ogg/os_types.h 

vorbis/codec.h 
vorbis/vorbisenc.h 
vorbis/vorbisfile.h 

然後,我添加了一些代碼,我得到的錯誤「程序可以」因爲libvorbisfile.dll從計算機中丟失,因此請啓動。「 而且我很確定該文件是在庫文件夾中,並在屬性中正確定義。

我沿途做錯了什麼? 我怎樣才能確定什麼是錯的,我可以修復它?

我已經嘗試將.dll放在項目的文件夾以及Windows/System32文件夾中,並沒有奏效。

回答

1

庫文件夾對於.lib文件來說很好,但它在運行時正在尋找.dll文件,而您的項目設置對此文件沒有任何影響。 Windows在某些地方查找.dll,但讓程序運行的最簡單方法是將.dlls放在工作目錄中,這是您運行可執行文件的地方(可能與.exe的目錄相同文件)。

+0

已經嘗試過,也沒有工作。通常把它們放在Windows/Sys32 - 64文件夾中總是可以解決這個問題,但是現在不是這樣......所以我在猜測一些非常錯誤的事情...... – Danicco

+0

我重新閱讀你的答案,並注意到你建議放入調試/發佈文件夾,不在項目中...我試過了,它的工作!雖然我不確定爲什麼只有這些(所有三個必須移到那裏,ogg,vorbis和vorbisfile)必須在那裏... – Danicco

+0

請參閱:http://msdn.microsoft.com/en-us/library/windows /desktop/ms682586(v=vs.85).aspx 您可能已將.dll放在錯誤的'system'文件夾中。使用文章中提到的功能來查看是否將.dll放在正確的位置。 –

相關問題