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

Unable to load DLL 'LibFlac': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

HERE 是我项目的 link。

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

得到的

所以我知道 libFLAC.dll 不见了。所以我尝试了以下所有方法来解决问题:

我从 rarewares 下载了 libFLAC dll。org/lossless.php#flac-dll-x64 我试图将其添加为参考,但出现此错误: "A reference to C:\CodeProjects\WaveConverter\WaveConverter\Libraries\libFLC_dynamic.dll' could not be added. Please make sure that the file is accessible, and that it is valid assembly or COM component."

我尝试了其他方法:我将 dll 文件添加到 bin/Debug,重新打开了我的项目。 运行 又是这个项目。线上同样的错误:“context = FLAC__stream_encoder_new();”错误:"Unable to load DLL 'LibFlac': The specified module could not be found. (Exception from HRESULT: 0x8007007E)"

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

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

我还能尝试什么?我该如何解决这个错误?

您是 p/invoking 一个非托管库名称 LibFlac.dll。当您第一次从库中调用函数时,您需要该库及其依赖项位于 DLL 搜索路径中。通常这意味着执行以下操作:

  1. LibFlac.dll 放在与您的可执行文件相同的目录中,并且
  2. 正在安装 LibFlac.dll 具有的所有依赖项。通常这将是 MSVC C++ 运行时。仔细阅读文档,找出 DLL 有哪些依赖项。

这是一个非托管 DLL。不要试图将其添加为参考。您拥有的 DLL 似乎也被命名为 libFLC_dynamic.dll,这与您的代码期望的名称不同。你有正确的 DLL 吗?