Dot-Net
即使 dll 與執行檔位於同一文件夾中,DllImport 也找不到 dll
我正在嘗試使用llvm-fs項目,該項目為 F# 提供 llvm 綁定。我已經編譯了該
LLVM-3.1.dll文件,--enable-shared它現在與我編譯的執行檔位於同一目錄中(我檢查了Environment.CurrentDirectory)。在DllImportllvm-fs 看起來像:[<DllImport( "LLVM-3.1.dll", EntryPoint="LLVMModuleCreateWithName", CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Ansi)>] extern void* (* LLVMModuleRef *) moduleCreateWithNameNative(string ModuleID)然而,當我執行我的應用程序時,它會出錯:
Unable to load DLL 'LLVM-3.1.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)如何獲取要載入的 DLL?作為參考,這是我嘗試載入的確切 DLL。
這:
“指定的模組無法找到”
可以指向某個庫,該庫
LLVM-3.1.dll依賴於,而不是LLVM-3.1.dll自身。
在這種情況下,當 DLL 或 EXE 無法載入時,Depends.exe非常方便 - 它顯示完整的 EXE/DLL 依賴關係樹,突出顯示無法載入或失去的內容。