无法加载DLL' LibFlac':找不到指定的模块。 (来自HRESULT的异常:0x8007007E)

时间:2015-03-03 18:46:24

标签: c# dll pinvoke dllimport

HERE是我项目的链接。

错误在第107行:" context = FLAC__stream_encoder_new();"在文件中:FlacWriter.cs - >我没有写那个文件。我是从HERE

得到的

所以我理解libFLAC.dll丢失了。所以我尝试了以下所有方法来解决这个问题:

我下载了libflAC dll表单rarewares.org/lossless.php#flac-dll-x64我试着添加它作为参考,我得到这个错误: "对C:\ CodeProjects \ WaveConverter \ WaveConverter \ Libraries \ libFLC_dynamic.dll'的引用无法添加。请确保该文件是可访问的,并且它是有效的程序集或COM组件。"

我尝试了其他的东西:我将dll文件添加到bin / Debug,重新打开了我的项目。再次运行该项目。同样的错误在线:" context = FLAC__stream_encoder_new();"错误:"无法加载DLL' LibFlac':找不到指定的模块。 (HRESULT异常:0x8007007E)"

我也试过'导入'我的代码中的DLL是这样的:我试图添加这一行:" [DllImport(" libFLAC.dll")]"在我的项目文件的第14行下:Worker.cs 我得到了这个错误:"复制' DLLimport'属性'

我还从dependencywalker.com下载了dependency-walker不确定如何操作它,但是当它完成下载后,我点击了OPEN图标并打开了我试图添加到项目中的libFLAC_dynamic.dll文件。而且没有错误。我不确定如何使用这个dependencyWalker ...

我还能尝试什么?如何解决此错误?

1 个答案:

答案 0 :(得分:1)

您正在调用非托管库名LibFlac.dll。首次从库中调用函数时,需要该库及其依赖项位于DLL搜索路径中。通常这意味着执行以下操作:

  1. LibFlac.dll放在与可执行文件相同的目录中,然后
  2. 安装LibFlac.dll具有的所有依赖项。通常,这将是MSVC C ++运行时。请仔细阅读文档,以确定DLL具有哪些依赖项。
  3. 这是一个非托管DLL。不要尝试将其添加为参考。您的DLL似乎也被命名为libFLC_dynamic.dll,它与您的代码所期望的名称不同。你有合适的DLL吗?