如何将包装器DLL连接到API DLL以便在C#项目中使用?
我使用WF解决方案来规范音频文件的音量。它有两个.dll库,必须连接到项目才能使用。其中一个-.NET库连接良好,另一个-API根本无法连接到项目。在运行时,我得到了一个如何将包装器DLL连接到API DLL以便在C#项目中使用?,c#,c++,.net,dll,C#,C++,.net,Dll,我使用WF解决方案来规范音频文件的音量。它有两个.dll库,必须连接到项目才能使用。其中一个-.NET库连接良好,另一个-API根本无法连接到项目。在运行时,我得到了一个FileNotFound异常,它是deatile描述 无法加载文件或程序集“DynamicAudioNormalizerNET.dll”或其依赖项之一 文档中也写着 基于Microsoft.NET的应用程序→ 使用由DynamicAudioNormalizerNET.dll程序集提供的DynamicAudioNormalizer
FileNotFound
异常,它是deatile描述
无法加载文件或程序集“DynamicAudioNormalizerNET.dll”或其依赖项之一
文档中也写着
基于Microsoft.NET的应用程序→ 使用由DynamicAudioNormalizerNET.dll程序集提供的DynamicAudioNormalizerNET C++/CLI包装类在运行时需要DynamicAudioNormalizerAPI.dll
它的依赖项当然是“DynamicAudioNormalizerAPI.dll”,但它与NET.dll一样位于解决方案的文件夹中。此外,这两个库都作为文件添加到解决方案中,并且它们的“复制到输出”功能设置为“始终复制”。如何链接这两个DLL或使其正常运行
它的依赖关系当然是“DynamicAudioNormalizerAPI.dll”,但它也在解决方案的文件夹中
它需要位于projekt输出目录中(例如,
bin\debug
或bin\release
,其中是.exe),而不是解决方案文件夹中。可能有两个原因
DynamicAudioNormalizerAPI.dll
未与DynamicAudioNormalizerNET.dll
放在一起。检查Copy local
reference属性(在解决方案资源管理器中),并确保这两个DLL组合在一起DynamicAudioNormalizerAPI.dll
可能有自己未解析的依赖项。通过使用专用工具打开.dll
,您可以轻松地检查这一点。它将显示您是否还需要一些运行时
或其他东西是的,因为我已经将它添加到项目中,并设置了“复制到发行版和调试文件夹”功能。你应该在问题中包含这些信息。第一个解释中的“组合”是什么意思?“复制本地”功能设置为true。API DLL没有通过引用包含到项目中,这让我想起了:无法添加对“…\DynamicAudioNormalizerAPI.DLL”的引用。请确保该文件可访问,并且是有效的程序集或COM组件。我还通过这个工具获得了API依赖关系,但我该怎么办?@АПППФБС
“走到一起”
意味着在文件系统中看到的所有东西(可能有许多副本)都必须确保或放置DynamicAudioNormalizerAPI.dll
。因此,在我的计算机中
必须有两个.dll
一起DynamicAudioNormalizerNET.dll
和DynamicAudioNormalizerAPI.dll
。把下载链接(和你的.net版本)放在有问题的地方,我会自己测试。它是.net 4,5和这些文件。Dependency Walker
显示PTHREADVC2.DLL
缺失。另外,不要忘记,您的程序变成了仅限x64(因为DynamicAudioNormalizerAPI.dll是为x64平台编译的)。谢谢您,我已经修复了所有问题。