2012-04-17 77 views
1

我只是在研究我的學士論文...這是一個VST插件(DLL庫),它依賴於libfftw3-3.dll(FFT庫)。當我的筆記本電腦(64位Win7的終極)測試時,我發現一個問題...我不能導入這個VST任何音樂工作室....DLL庫未找到

在我的電腦上,我已經複製VST插件DLL和libfftw3-3 .dll在VstPlugins目錄中,但是當我嘗試導入此VST時,系統告訴我找不到libfftw3-3.dll。

這不是COM對象,所以我不能使用REGSVR32註冊它...

能否請你幫我,我在做什麼錯?而我怎麼能得到這個工作?

+0

P.S ...已經嘗試將其添加到Windows/System32文件夾...仍然無法工作 – Marty 2012-04-17 00:37:53

回答

2

VST是一個COM組件。它由客戶端程序加載,底層調用是CoCreateInstance()。這裏的問題是Windows只會查找與您使用的DLL的客戶端程序相關的目錄。您當然不會將DLL複製到EXE的目錄中,您也不應該這樣做。

這是COM的通用問題,乾淨地解決它並不容易。 Windows並行緩存是一個解決方案,但是在你完成整理之前你會畢業。您可以通過修改系統PATH環境變量來解決問題。或者絕望的舉動,將DLL複製到c:\ windows \ system32(64位版本的Windows上的syswow64)。爲了讓你畢業,介意你。

如果你仍然有麻煩,那麼你可能有其他的依賴關係,你不知道。 CRT dll是一個典型的例子,當你用/ MD編譯你的代碼時你會得到這個效果。您可以使用SysInternals的ProcMon實用程序追查這些依賴關係,您將看到客戶端程序搜索DLL。或Profile模式中的DependencyWalker(F9)。

+1

非常感謝,我剛剛複製libfftw3-3.dll到音樂工作室的主文件夾。它現在有效... – Marty 2012-04-17 00:47:36