即使dll与可执行文件位于同一文件夹中,DllImport也找不到dll

Cal*_*ers 11 .net f# dllimport llvm llvm-fs

我正在尝试使用llvm-fs项目,该项目为F#提供llvm绑定.我已编译该LLVM-3.1.dll文件,--enable-shared它现在与我编译的可执行文件(我查看过Environment.CurrentDirectory)位于同一目录中.将DllImport在LLVM-FS是这样的:

[<DllImport(
    "LLVM-3.1.dll",
    EntryPoint="LLVMModuleCreateWithName",
    CallingConvention=CallingConvention.Cdecl,
    CharSet=CharSet.Ansi)>]
extern void* (* LLVMModuleRef *) moduleCreateWithNameNative(string ModuleID)
Run Code Online (Sandbox Code Playgroud)

然而,当我运行我的应用程序时,它出错:

Unable to load DLL 'LLVM-3.1.dll': The specified module could not be found.
(Exception from HRESULT: 0x8007007E)
Run Code Online (Sandbox Code Playgroud)

如何加载DLL?作为参考,这是我正在尝试加载的确切DLL.

Den*_*nis 20

这个:

"指定的模块无法找到"

可以指向某个库,它LLVM-3.1.dll取决于而不是LLVM-3.1.dll自身.


MiM*_*iMo 11

当DLL或EXE无法加载时,Depends.exe非常方便 - 它显示完整的EXE/DLL依赖树,突出显示无法加载或丢失的内容.