如何将包装DLL连接到API DLL以在C#项目中使用?

时间:2016-05-07 20:10:57

标签: c# c++ .net dll

我使用Dynamic Audio Normalizer作为我的WF解决方案来规范化音频文件量。它有两个.dll库,必须连接到项目才能使用。其中之一 - .NET库连接良好,另一个 - API根本不能用于项目。虽然运行时我得到了一个FileNotFound异常,这是一个贬低的贬义

  

无法加载文件或程序集“DynamicAudioNormalizerNET.dll”或其依赖项之一。

它也写在

文档中
  

基于Microsoft.NET的应用程序→使用由DynamicAudioNormalizerNET.dll程序集提供的DynamicAudioNormalizerNET C ++ / CLI包装器类,在运行时需要DynamicAudioNormalizerAPI.dll。

它的依赖性当然是“DynamicAudioNormalizerAPI.dll”,但它位于解决方案的文件夹以及NET.dll中。此外,两个库都作为文件添加到解决方案中,它们的“复制到输出”功能设置为“始终复制”。如何链接这两个DLL或只是让它正常运行?

2 个答案:

答案 0 :(得分:1)

有两个可能的原因。

  1. 第一个原因可能是$_POST['First Form'];未与DynamicAudioNormalizerAPI.dll放在一起。检查DynamicAudioNormalizerNET.dll refference属性(在解决方案资源管理器中)并确保这两个dll结合在一起。

  2. Copy local可能有自己未解析的依赖项。您可以使用特殊工具Dependency Walker打开DynamicAudioNormalizerAPI.dll来轻松检查此问题。如果您还需要一些.dll或其他内容,它会告诉您。

答案 1 :(得分:0)

  

它的依赖性当然是" DynamicAudioNormalizerAPI.dll",但它也在解决方案的文件夹中

它必须位于您的projekt输出目录中(例如{。{1}}或bin\debug,其中.exe是),而不是解决方案文件夹。