某些计算机上的.NET应用程序的C ++库的DllNotFoundException

时间:2015-11-19 20:48:19

标签: c++ .net windows-10 dllimport dllnotfoundexception

我们有.NET应用程序,它通过[DllImport]使用C ++库。除了3台计算机外,它在许多计算机(数千个客户)上运行良好。所有这些都安装了Windows 10(其他Windows 10平台工作正常)。

例外是:

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

此dll与主可执行文件位于同一文件夹中。 已经采取了哪些措施来解决问题:

  • 将DLL放入system32文件夹;

  • 安装了不同版本的vc redist;

  • 以管理员身份运行。

结果是一样的。

任何想法,伙计们?

提前致谢!

1 个答案:

答案 0 :(得分:0)

不要将DLL放在系统目录中。你不应该把文件放在那里。将DLL放在与可执行文件相同的目录中。

如果您这样做并且系统报告DllNotFoundException,则表示无法找到DLL的某个依赖项。接下来,您需要找出依赖项是什么,并确保它们都得到满足。

您可以使用Dependency Viewer之类的工具来检查依赖关系,但实际上最好的方法是转到源代码。如果它是第三方库,则可以是库的文档,如果您自己构建了DLL,则可以直接从源代码和编译选项中获取。