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 ...
我还能尝试什么?如何解决此错误?
答案 0 :(得分:1)
您正在调用非托管库名LibFlac.dll
。首次从库中调用函数时,需要该库及其依赖项位于DLL搜索路径中。通常这意味着执行以下操作:
LibFlac.dll
放在与可执行文件相同的目录中,然后LibFlac.dll
具有的所有依赖项。通常,这将是MSVC C ++运行时。请仔细阅读文档,以确定DLL具有哪些依赖项。这是一个非托管DLL。不要尝试将其添加为参考。您的DLL似乎也被命名为libFLC_dynamic.dll
,它与您的代码所期望的名称不同。你有合适的DLL吗?