我正在使用Visual Studio 2010創建一個32位DLL作爲第三方應用程序(AviSynth)的插件。直到我嘗試使用FFTW(http://fftw.org)DLL時,該DLL才被第三方應用程序正確加載。我使用了32位FFTW DLL,運行「lib /def:libfftw3-3.def」來創建一個.lib文件,並將其添加爲項目中的資源。對這些功能進行了一些調用。它編譯得很好,但是當我嘗試在第三方工具中加載它時,它失敗了。將另一個DLL鏈接到項目後,C++ DLL無法加載
我試過把FFTW DLL放在我的DLL旁邊,我也嘗試從我的DllMain中使用LoadLibrary,但它仍然不工作。
我能夠在DllMain函數和AviSynth(AvisynthPluginInit2)調用的函數中停止調試器,但是AviSynth聲稱無法在此之後加載DLL,並且在之前調用的函數頂部出現斷點不再被擊中。
AviSynth常見錯誤消息是: LoadPlugin:無法加載 「C:\ Program Files文件(x86)的\ AviSynth的2.5 \插件\ xxxMYPLUGINxxx.dll」
感謝您的幫助。
好的。我已經從DllMain()中移除了對LoadLibrary()的調用。現在我寫了一個非常簡單的控制檯應用程序,它只是在我的DLL和FFTW DLL上調用LoadLibrary。在這兩種情況下,我得到的HResult都是「0x8007007e - 找不到指定的模塊」。 – xlat808 2011-04-19 16:55:57
檢查Dependency Walker,可能是缺少導入。 – 2011-04-19 17:25:27